הבינגמה הדובע תביבסב תונכתל ריהמ ךירדמ

Size: px
Start display at page:

Download "הבינגמה הדובע תביבסב תונכתל ריהמ ךירדמ"

Transcription

1 1 מדריך מהיר לתכנות בסביבת עבודה המגניבה Borland C++ builder מדריך זה נועד לאנשים שכבר יודעים לתכנת ב ++C אין כאן שום כוונה ללמד את השפה או להכין מטעמים מחרקים לשם כך יש אלפי מדריכים אחרים ברשת. המדריך יחולק לחלקים בהם אתמקד כל פעם בנושא אחר ואדגים אותו בצורה הכי פשוטה שאפשר (אפילו בלונדיות יבינו), על הקוראים היקרים לעבוד במקביל... לקרוא את המדריך ולבצע את הוראות הזימה על סביבת העבודה כך שלבסוף תכירו אותה אינטימית כמעט כמוני. כמו שבטח הבנתם, אין לי מצב רוח לכתוב בצורה "אקדמאית" יבשה, ואני מתכוון להוסיף את דעתי הממש לא אובייקטיבית, אך כל מה שקשור לחומר ייכתב בצורה הכי טובה שאני יכול מכיר על מנת לחסוך ממכם את הדם, זיעה ושנים של בידוד נפשי שעברתי כדי להבין איך הכי טוב לעבוד עם התוכנה. נושאים לפי פרקים : הפעם הראשונה הכי מיוחדת. - הכרה כללית של הסביבה. פרטים טכנים משעמם אבל חייבים כדי להבין מה לעזאזל קורה כאן. מי השחקנים - חברי הרכיבים (Components) אירועי לב ולמה הם טובים - להגיד למחשב מה לעשות ומתי. מי רוצה טופס יצרה ועיצוב של יותר מטופס אחד. בואו נעשה את זה בקבוצה (כולם בשביל אחד ואחד בשבילי) שמור את חכמת החיים בקובץ. עוד דברים כללים. סיכום (כולל קישורים) המדריך נכתב על ידי עדי -.la_adi@hotmail.com

2 2 הפעם הראשונה הכי מיוחדת מטרת פרק זה היא להתחיל לעבוד בסביבת העבודה, ולכן כמו כל מדריך טוב נרשום את התוכנית המפורסמת ביותר בעולם world" "hello אך הפעם במקום הטקסט המשעמם לא לקחתי כדורים נגד king!!" "ADi is the... נשתמש במשפט יותר מגניב... נניח מגלומניות היום... מושגים בסיסים : טופס הדבר הגדול עם הנקודות שבמרכז המסך. רכיב אובייקט שנימצא בראש המסך, מחולקים לפי קטגוריות. אם כבר יש פרויקט פתוח תבחרו file->new לעבודה : 1. הפעילו את הסביבה.application מתחת לתפריט ניתן להבחין ברשימת הרכיבים שניתן להוסיף לטופס הפתוח לכם במרכז החלון כפי שניתן לראות תחת קטגורית Standard יש כפתור חמוד שכתוב עליו.OK אל תבחרו אותו הוא מכוער!!!! עדיף לעבוד אם הכפתור שנמצא תחת Additional שגם עליו כתוב OK בצורף סימון... V ביחרו אותו ותלחצו על הטופס. תמונת העולם צריכה להיות טופס עם נקודות וכפתור שכתורתו... BitBtn1 אם לא תסגרו את המחשב ותלכו למכור שניצלים. לחיצה כפולה על הכפתור תוביל אתכם ישירות אל עורך הטקסט שם נרשום את פקודות התוכנית. נא להקיש ללא שגיאות, את הפקודה הבאה... כמובן העתק והדבק תמיד יהיה להיט ויכול לשמש אותנו גם כאן ; office") ShowMessage("ADi hate ללחוץ על הרץ F9 או כפתור ה PLAY הירוק שנראה כמו חץ מלא בראש המסך. לאחר קומפילציה וקישור יופיע טופס שכל לחיצה על הכפתור תוביל להצגת הודעה על המסך... ילדים אל תנסו את זה בבית! כדי לצאת יפה יפה מהתוכנית תלחצו על סימן הבניין בפינה השמאלית עליונה ותבחרו בסגירה. זהו!

3 3 היה פשוט... חגרו חגורות בטיחות אנו הולכים להמריא לעולם הנפלא של תוויות... על אותו פרויקט המשיכו ועשו את הדברים הבאים. הוסיפו עוד כפתור כמו מקודם. שמו יהיה בצורה טבעית BitBtn2.1.2 הוסיפו תיבת טקסט, נמצאת בקטגורית שבה רשום ab (קיצור של (ABA Standard ונראת כמו תיבת טקסט....3 ועכשיו לרגע שכולם חיכו לו... הוסיפו תווית, זה רכיב שכתוב עליו. A מחלקה 3 להתפקד : 2 כפתורים מגניבים, תיבת טקסט אחת ותווית אחת. לחצו לחיצה כפולה על הכפתור השני ובעורך הפקודות רשמו נא : Label1->Caption = Edit1->Text; כעת הריצו את התוכנית וקסם יקרה : על מה שתקלידו בתיבת הטקסט, לאחר הלחיצה על הכפתור השני יופיע כטקסט בתווית... פשוט מדהים זהו.7.8 הסבר לקוד : Caption זוהי תכונה של הרכיב תווית, Text זוהי תכונה של הרכיב.Edit1 פשוט ביצענו השמת מחרוזות מתיבת הטקסט לתוך התווית. מחרוזת היא לא כמו ב C אלא אובייקט די מתוחכם (יוסבר עליו בהמשך) ולכן ניתן לבצע העתקה בעזרת אופרטור = לסיום ההדגמה כמו ששמתם לב הטופס ממש מכוער ולכן ניקח אותו לטיפול יופי אישי 1. לחצו במקום כלשהו בטופס - לא על רכיב כלשהו. בצד שמאל יש את טבלת המאפיינים של הטופס. אם אתם לא רואים אותה לחצו על F חפשו את המאפיין של כתב או בעברית, FONT אם יש לידו + אז לחצו על ה+ כדי לפתוח לרווחה את מאפייני הכתב. כעת שנו את הצבע, הגודל סוג הכתב כרצונכם. התפרעו רק חשוב לזכור שצבע עיני הוא כחול לכן על מנת להתחנף אלי נא לבחור בכחול.. 4 כעת שנו את ה Caption של כל הרכיבים... אני לא מפרט אתם ילדים גדולים ולכן תסתדרו (טיפ כדי לבחור ברכיב לעדכון פושט לחצו עליו בעזרת העכבר). זהו

4 4 הסבר : מכוון שברירת המחדל של הרכיבים היא להתנהג כמו קופים, הם יקבלו את צורת האב שלהם כלומר מאפייני האב כמו כתב וצורתו יעברו מהאב לבנים...למה זה טוב?? כך אפשר לשנות הרבה מאפיינם במכה אחת ולתת צורה אחידה לפרויקט. לא טוב לכם?? תבטלו, לרכיבים יש מאפיין בשם ParentFont קבעו אותו לשלילי... הערות אחרונות :... כל הכבוד מקווה שהיה סבבה. הגעתם לכאן זו הפעם הראשונה ואחרונה שעובדים ללא שמות משמעותים לאובייטים. כדי לתת שם לרכיב (כמה צפוי) יש לו מאפיין (PROPERTY) בשם NAME שנו אותו. יש כפתור חביב בשם SAVE ALL השתמשו בו בלי בושה - אם היו בעיות עינו בו. הפרויקט שיצרתי ישמר במחיצה זו העזרה של התוכנה ממש טובה אל תתביישו להשתמש בה על ידי לחיצה על F1 הוסיפו השתעשעו בפרויקט כמו תאילנדי שהולך לאכול כלב... מיתחו אותו,, רצוי לחממם על אש כפתורים או רכיבים אחרים (תראו מה הם עושים בעזרה ( קטנה. הכי חשוב ספרו לכל החברים המסכנים שעובדים ב MFC כמה קל לכתוב תוכנית בעזרת BCB וצחקו להם בפנים. בדיחה : הייתה לי חברה שדיברה אלי בבינארית, כל הזמן אמרה לי אפס אחד אפס אחד... סיכום : פונקציה להצגת הודעה פשוטה ShowMessage מקבלת מחרוזת ומציגה אותה על המסך בצורת הודעה, טוב בעיקר בזמן בדיקת התוכנית כשעושים DEBUG ורוצים להציג הודעות בסגנון...עד כאן הכל בסדר., הוא יכול להכיל רכיבים כמו כפתורים ותיבות יש אובייקט מרכזי בשם טופס טקסט, לכולם יש מאפיינים שניתן לשנות אותם בזמן פיתוח התוכנית וגם בעזרת קוד - הסביבה כל הרכיבים בפרויקט יופיעו בצורת מצביעים סיבה היסטורית התפתחה מדלפי ששם כל האובייקטים מוקצים דינאמית. לחיצה כפולה על רכיב שנמצא על הטופס יוביל למקום בו תיכתב הפונקציה המתאימה לאחד האירועים שהאובייקט יכול לקבל... הסברים נוספים בהמשך הפרקים. Parent לכל רכיב יש הורה כך שבמידה ולא נאמר אחרת ישפיע על צורתו של הרכיב וזאת בנוסף לowner שאחראי לשחרור הזיכרון של הרכיב בסיום הפעולה (סתם לידע כללי בינתיים), לעשות גיבויים חשוב לעבוד נכון : לתת שמות משמעותים, לשמור הרבה ולדאוג שהמשתמש יקבל טופס אסתטי שנוח לעבוד איתו.

5 5 פרטים טכנים בחלק זה אסביר בקצרה מספר נושאים הקשורים לתוכנה, נבין מי נגד מי למה וכמה. אנשי בורלנד המציאו לנו כמה מוסגים חדשים ומילות מפתח שאותם יש לשנן (הכתבה בעוד יומיים) וגם אותם אסביר. אל תשבו על הפרק הזה יותר מדי זמן הוא מבוא להמשך, רצוי לחזור ולקרוא אותו שוב לאחר סיום קריאת המדריך כולו. יש הרבה נושאים בפרק זה אז גם כאן יכנס אינדקס להקלת השימוש: CodeGuard.1.2 קומפילציה. 3. המחשב כנביא השלמת קוד..4 סימניות. 5. הסייר האמיץ 6. קצת מסביב. 7. מילים חדשות לשפה. - CodeGuard נושא זה הוא כה חשוב שהחלטתי לפתוח בו. סביבת העבודה מאפשרת לנו לשלב בפרויקט מעיין שומר, ולפי השם קל לראות שהבחורציק שומר על הקוד. השאלה היא : מפני מי הוא שומר על הקוד? והתשובה רבותיי וגבירותיי ממכם! המתכנתים המוכשרים יותר או פחות... אני מודה ומתוודה שהשומר הציל את עורי מספר לא מבוטל של פעמים. על ידי כך שמשלבים אותו בפרויקט ) בקרוב אסביר איך ( יחד עם התוכנית משתלבים מספר DLL שמוודאיים שאין כל מני בעיות כמו : כתיבה לזיכרון שלא הוקצע דינאמית, שימוש לא נכון בפונקציות ואי שחרור זיכרון בסיום התוכנית. דוגמאות : 1. int *vec vec = new int [10]; delete vec; 2. Node *ptr; ptr = NULL; ptr = ptr->data; במקרה הראשון לאופרטור delete שהוא בעצם כידוע פונקציה נשלך מצביע לint, המגן לפני (vec במקום מצביע למערך של int (הדרך הנכונה היא לשים [] יודיע לנו על כך. במקרה השני יש מצביע NULL שנמצא בצד שמאל של הקוד בלגן.

6 6 את פעולתו נראה בצורת "חריג" שייזרק אלינו כמו אבן על אוטו שנוסע ביום שבת במאה שערים. איך מפעילים את המגן: מהתפריט project <- options <- codeguard ולסמן את האפשרויות ב V חמוד. הערות : לא לשכוח בסוף לפני הגרסה האחרונה להוריד את המגן שתופס הרבה זיכרון ומאט את התוכנית מאוד. יוצר קבצי clg שבהם מפרט את הבעיות שנתקלנו במהלך התוכנית, מה לא שוחרר, אילו פונקציות נקראות וכמה פעמים. אל תתביישו לעצור ברגע זה ולנסות לראות אם המגן שלכם לא יושן בשמירה. בדיחה : מה זו בלונדינית אם פיאה? בינה מלאכותית... קומפילציה : ברירת המחדל בגרסה 5 היא לבצע קומפילציה ברקע, ואין הכוונה לרקע של שקיעת החמה. פרוש הדבר שהמחשב יבצע קומפילציה בזמן שאתם ממשיכים לעבוד על הפרויקט, נשמע מגניב ואני חושב כמה קשה הם עבדו כדי לתת לנו את האופציה הזו אבל אם נחשוב על זה כמה זמן כבר לוקחת קומפלציה... ובמקרה הגרוע של יותר מדקה הולכים לשתות קפה... מניסיוני זה סתם לא מועיל ואפילו קצת מפריע לכן אמליץ בחום להוריד את השימוש בקומפלציה ברקע - אלא אם כן באמת לוקח לכם הרבה זמן לקמפל. איך מגיעים לשנות את האפשרות הזו : options Tools <- Environment ואם אתם כבר שם הקדישו דקה או שתים מזמנכם היקר ועברו על יתר האפשרויות,חלקן יעשו לכם את החיים הרבה יותר קלים. אני עובד בגישה של בדיקת הקוד בחלקים קטנים, אני כותב משהו מוודא שעובד ואז ממשיך קדימה...לכן זמני הקומפילציה שלי קטנים, חוץ מהמקרה שאני מאחד את החלקים הקטנים לפרויקט ואז בזמן הקומפלציה אני מדבר בטלפון עם כל העולם ואישתו. בדיחה : בשבט קניבלים הבן אומר לאביו, אבא אני לא אוהב את אמא... אז האב אומר טוב בני תאכל רק את הירקות. - כל מי שכתב תוכניות עם עורכי טקסט לא מתקופת ימי הביניים המחשב כנביא (כדוגמת EDIT של דוס הזכור לטוב ( מכיר את האפשרות של השלמת קוד אוטומטית, כאילו המחשב יודע מראש איזה שטויות אנו הולכים לתקתק. גם כאן יש השלמת קוד <- או רווח {ctrl- ונותנת רשימה של או אוטומטית שמופעלת על ידי לחיצה על }. ביטוים חוקיים אותם אפשר לכתוב אחרי.

7 7 דוגמאות : אחרי שם של משתנה אובייקט תיתן את רשימת השדות (משתנים לחיצת. ופונקציות) שניתן להפעיל מאותו אובייקט. לחיצת חץ כלומר <- אחרי שם של מצביע לאובייקט ייתן אותו דבר. לחיצת רווח ו ctrl ייתן את רשימת המשתנים (כולל גלובלים) ופונקציות שניתן לכתוב בתוכנית. כדי להגיע למאפייני אפשרות זו נא לגשת ל: Tools->Editor Options ->Code insight באותו מקום יש אפשרות לבקש עוד כמה אפשרויות מגניבות כמו השלמת פרמטרים, הערכת ביטויים ) פרוש בעברית :כמה זה שווה?? ( ואפשרות לקבוע אחרי כמה זמן תופיע ההשלמה. אין טוב בלי רע (המכוער תמיד מסתובב באזור ( וגם לאפשרות זו יש חסרונות : תופס הרבה זיכרון ולכן אם המחשב שלכם סובל מבעיות זיכרון שקלו לבטל אפשרות זו. אם יש טעות בקוד שלכם, לא תתבצע השלמת הקוד. הטעות יכולה להיות כמה שורות לפני המקום שבו מבקשים את ההשלמה. הופך אתכם לעצלנים התפקיד שלנו לתקתק אז תקתקו!!! זהו נא לגשת לשחק עם אפשרות זו - רק תהיו עדינים בבקשה. בדיחה : יש 10 סוגים של אנשים בעולם, אילו שמבינים בינארית ואילו שלא. סימניות פעם הסמל בטירונות אמר לי : "סימנתי אותך" ובגלל זה לא יצאתי שבת מאותו רגע לא אהבתי סימניות עד אשר נתקלתי בסימניות של עורך טקסט התוכנית... בתוכניות ארוכות יש נטייה ללכת לאיבוד, במיוחד אם לא כתבתם את הטקסט או שחוזרים אליו אחרי כמה ימים... יש כמה אפשרויות לפתור את הבעיה שהקלה ביניהם לדעתי היא סימון נקודות שאותם עובדים בעזרת סימניות. לסמן נקודה : ללחוץ בימין עכבר על השורה אותה רוצים לסמן ולבחור מהתפריט את Toggle bookmarks ואז מספר. לחזור לנקודה : ללחוץ ימין עכבר בעורך הטקסט ולבחור ב goto bookmarks ואת הנקודה אליה רוצים לחזור.

8 8 הסייר האמיץ לצד הקוד שאותו כותבים ניתן לראות גם את סייר הפרויקט. אם אתם לא רואים אותו אז ניתן ללחוץ ימין עכבר בחלון הקוד ואז לבחור. view explorer תפקידיו בחיים : בעזרתו ניתן לגשת להגדרות וקוד של פונקציות. להוסיף שדות, פונקציות מחלקה או מאפיינים לאובייקטים בפרויקט. לראות את ההירכיה של האובייקטים בפרויקט. כדי להגיע לכל האפשרויות הנ"ל פשוט ללחוץ ימין עכבר ולבחור מתפריט. באפשרות של הוספת משתנים, פונקציות ומאפיינים לאובייקט יש אפשרות לבחור איזה טיפוס, הרשאות וכו וכו... בקיצור מאוד שימושי... רצוי להכיר. בדיחה : מה ההבדל ביו עורך דין לאלוהים? אלוהים לא חושב שהוא עורך דין. קצת מסביב (מה יש מולך? מסך, מאחורה? קיר) כעת הסביר על 2 אוביקטיים עיקרים בסביבת העבודה : inspector object כל אובייקט ויזואלי(נקרא גם רכיב או פקד ( שנעבוד איתו ניתן לשנות לו את המאפיינים תוך כדי עיצוב התוכנית וגם בזמן הריצה. זה תפקידו של ה inspector, object שם משנים את המאפיינים ובכרטיסיית האירועים אפשר לבחור אילו אירועים תתבצע פונקצית תגובה. אם הוא נעלם לכם מהמסך אפשר לקרוא לו לחזור בעזרת. F11 ליד התפריטים יש את הכרטיסיות בהם מוצגים הרכיבים שאותם אפשר להוסיף לפרויקט, יש שם רכיבים סטנדרטים, פקדי אינטרנט ואופיס ועוד. בעזרתם נעצב את הממשק משתמש של התוכנית גשו וטילו שם... ילד : אמא מתי נגיע לאבא? אמא :שתוק בני ותמשיך לחפור מילים חדשות יש מספר תוספות לשפה (ציפס סלט וכו ( שהעיקריות הן : published - בגלל המעבר לממשק גרפי נוצרה לחברת בורלנד בעיה איך מייצגים אובייקט שאת ערך השדות שלו (כמו הכותרת של טופס ( ניתן לשנות גם בזמן ריצה וגם בזמן כתיבת התוכנית כלומר אובייקט בעל מאפיינים ויזואלים. הפתרון הוא להוסיף את מחלקת published אשר כל מה שמופיע בה יוצג ב. object inspector ההרשאות של מחלקה זו הן כמו של, public ונכון להיום אין לכם מה לנגוע בכתוב שם מטופל לגמרי לבד על ידי סביבת העבודה. fastcall - מילה זו מופיע לפני פונקציות ופרושה הוא להעביר את הפרמטרים של הפונקציה דרך האוגרים אם אפשר. יותר יעיל מאשר לעבוד עם המחסנית. כל פונקציה שמתרחשת כתוצאה של אירוע (לחיצת עכבר גרירה וכו, ( חייבת להיות מוגדרת בעזרת fastcall ותחת הכותרת published.

9 9 דוגמה : ניצור כפתור בפרויקט שיגיב לפונקציה שאנו כתבנו : 1. פתח או פתחי פרויקט חדש והכניסו לו כפתור מי שלא יודע איך, יגש למוכר הבוטנים הקרוב בטוח יש לו הסבר. 2. גשו לקובץ H של הטופס ורשמו תחת הכותרת published את השורה הבאה : void fastcall WeDidIt (TObject *Sender); 3. עכשיו בחרו בכפתור מהטופס וב object inspector בחרו בכרטיסיית ה events ועבור כל אירוע כעת ניתן לבחור לביצוע את הפונקציה ששמה בישראל הוא.WeDidIt למה זה טוב?? אם לדוגמה רוצים שמספר כפתורים יפעילו את אותה פונקציה, על נושא זה ארחיב בעתיד. זו הייתה פחות או יותר סקירה על סביבת העבודה מקווה שהיה כיף אותי באופן אישי היה קצת משעמם אבל העיקר שקיבלתם רקע וטיפים על הסביבה כך שהעבודה תהיהי יותר מהירה וקלה... אם חשבתם שאין שעורי בית טעות!!! נא לגשת לעזרה ויש שם מדריך ב quickstart שמלמד איך לכתוב עורך טקסט (מי שבאמת משעמם לו שיעשה גם את המדריך לבסיסי נתונים) יש שם כמה טיפים טובים ולמרות שאני באופן אישי כבר לא משתמש בחלק מהטכניקות שמלמדים שם טוב לדעת שהן קימות.

10 10 Components בפרק זה ארחיב קצת על הרכיבים או בשמם הלועזי, Components ואתאר מאפיינים מרכזים משותפים לרוב הרכיבים וקצת על הרכיבים הנפוצים איתם נעבוד הכי הרבה. רקע - רכיב זהו בסך הכל אובייקט ++C שעבר מוטציה וקיבל את היכולת להיות מוצג על המסך גם בזמן תכנות. כמו שתיארתי בסוף הפרק הקודם אפשרות זו הגיע בעזרת הגדרות שבאות תחת הכותרת published בקובץ ב H של האובייקט. אם לא ישבר לי וישאר לי זמן אני גם אכתוב פרק קצר איך אתם תוכלו ליצור רכיבים שלכם בהתבסס על רכיבים קיימים. לידע כללי האב של כל הרכיבים הוא. TComponent קיימים 2 סוגי רכיבים עיקריים : כאלה שניתן לראות אותם בזמן ריצה כמו כפתורים, תוויות וכו. רכיבים ביישניים שלא ניתן לראות אותם בזמן ריצה כמו פקדי בסיס נתונים, רכיבי אינטרנט ותיבות הודאה כמו שמירה וטעינה. עבור רכיבים גרפים שרואים אותם בזמן ריצה כמובן יש חשיבות למיקומם בטופס, ודרך התנהגותם כאשר מגיעים אירועים של שינוי גודל החלון, לעומת הרכיבים הלא גרפים שאין כל משמעות למיקומם, העיקר שהם נמצאים ועושים את תפקידם מאחורי הקלעים. מבט מהיר על פלטת הרכיבים שנמצאת ליד התפריטים בראש המסך ניתן לראות שהם מחולקים לקטגוריות לפי כרטיסיות נחלקם גם למספר נושאים כללים : כללים לתוכנית שם נמצא את הפקדים שיבנו את הממשק משתמש ויהוו את המסגרת לתוכנית. בסיס נתונים ניתן ליצור תוכנית התומכת בבסיס נתונים די בקלות, נוסיף רכיבים (שרובם לא גרפים) וקיבלנו תמיכה ב SQL וכו וכו. רכיבי אנטרנט מאפשרים ליצור אפליקציות שיוצרות דפי HTML בצורה דינאמית ) אין לי מוסג מה עוד במקום ללמוד את זה אני כותב כאן...) אופיס רכיבים שמקשרים לתוכנות אופיס - בזה באמת אין לי שמץ של מוסג כמובן יש עוד רכיבים שלא הזכרתי אבל אני מניח שהבנתם את העיקרון ואפשר להתחיל לגשת לעבודה. מאפיינים משותפים לרכיבים : Tag כמו לפרות שנותנים להן מספר כך לכל רכיב יש אפשרות לתת לו מספר, ברירת המחדל היא. 0 משמש כאשר מספר רכיבים מפעילים אותה פונקציה, כך אפשר להבחין ביניהם. לרכיבים גרפיים : 1. Anchors או בעברית מדוברת: עוגן. קובע איזו פינה של הרכיב תישאר במקום כאשר החלון משנה את גודלו.

11 11 BiDiMode קובע כיצד ייכתב הטקסט ברכיב, ימינה, שמאלה ויש עוד אפשרויות עוזר ביישומים שבהם הכתב הוא מימין לשמאל. - Constrains הגבלות, כידוע העולם לא חופשי וכל רכיב יכול לגדול עד גודל מסוים שם נקבע את הגודל הזה. Enabled קובע אם ניתן בזמן ריצה לגשת ולהפעיל את הרכיב, כאשר הוא false לא ניתן לגשת לרכיב ואי אפשר להשתמש בו לצרכינו הזדוניים. Font כתב, כאן נשנה את גודל, סוג, צבע ומאפייני הכתב אני ממליץ על Book Antiqua (בגלל יעל המבינה תבין) Hint רמז, מה הפקד עושה ההיתם מתים שיהיה לכם אחד כזה במבחן! במאפיין זה נכניס את המחרוזת שתופיע כרמז, נשים לב שלא יעבוד אם ShowHint בעל ערך שלילי (כמו חשבון הבנק שלי) Left המרחק אופקי מהפינה השמאלית עליונה לדופן הרכיב שמכיל את הרכיב שלנו - צחוקים אבל הוא יכול לקבל גם ערך שלילי. Name שם הרכיב, טעות גדולה תהיהי בידכם אם לא תתנו שמות משמעותיים לרכיבים איתם אתם עובדים!! טעות עוד יותר גדולה אם תתנו שמות ארוכים מדי. Parent כל המאפיינים שמתחילים ב"הורה" קובעים אילו תכונות באות בירושה מהורה של הרכיב. טוב לכך שאם יש רכיב שמכיל הרבה אחרים אזי במכה אחת נשנה לכולם את הכתב אם משנים לאב את הכתב (ידוע שאב יש רק אחד) - Top כמו Left רק לגבי מרחק לדופן עליון של הרכיב המכיל Visible האם ניתן לראות את הרכיב בזמן ריצה, משמש מצבים בהם הטופס עמוס בפרטים ורוצים להקל על המשתמש ולצמצם את הרכיבים הטופס. (ברור שיש עוד שימושים זו היתה רק דוגמא) Height.12 Width, קובע את אורך וגובה הרכיב ולא בהתאמה. (יצא לי כך לא התכוונתי) זהו פחות או יותר זקירה מהירה על מספר מאפיינים שימושים, נעבור לכמה טיפים כללים לפני שנמשיך : תנו אינדיקציה לסוג הרכיב בשמו ועשו זו בהתחלה לדוגמה שם של כפתור טיפוסי btnplay ה btn מסמן לי שזה כפתור כמו כן lab,txt mem,lst מסמנים לי עבודה

12 12 אם רכיבים אחרים. זה טוב מכוון שאם אני רוצה לחפש רכיב ב object inspector כל הכפתורים ימצאו ביחד. כאשר בוחרים רכיב מפלטת הרכיבים תוך כדי לחיצה על SHIFT אז כל לחיצה על הטופס תוסיף מופע חדש של הרכיב. כך ניתן להוסיף הרבה רכיבים מאותו סוג. כדי לצאת מזה אפשר להוציא את המחשב מהחשמל או פשוט ללחוץ על החץ בפלטת הרכיבים. שמעו רוק כבד. כאשר משנים מאפיין של רכיב מסוים ובוחרים ברכיב אחר אז אם המאפיין ששינינו נמצא גם ברכיב החדש הוא כבר יהיה בחור בinspector object (כשתתחילו לעבוד תראו שזה עוזר ( לשנות גודל או מיקום של רכיב בצעדים קטנים השתמשו ב ctrl או shift והחצים. הפסקה לכו לשתות כוס קפה ותחזרו לעשות תרגיל. (אפשר גם נס רצוי 24 קראט של עלית הכי טעים, ולא אבא שלי לא עובד שם) תרגיל : נועד לתרגל אתכם אז תעשו אותו בראש מורם. 1 צרו פרויקט חדש. 2.תנו לו כותרת (מאפיין caption )של הטופס ושילחו אותה לימין - כותרת כמובן בעברית - קצת מורל לאומי!. 3 הנחיתו Shape על הטופס (נמצא בכרטיסיית (Additional ושנו את הצורה שלה בעדינות וגם את הצבע בעזרת.brush 4.הוספו כמה כפתורים שישנו את המראה שלה בזמן ריצה. להגדיל להקטין. להעלים. להוזיז שמאלה וימינה. לתת רמזים. 5. לזכור לתת שמות משמעותיים לרכיבים, לשנות צבעים וכו, יש דוגמה בספריה למשהו דומה שעשיתי - זה עובד למרות שפחות או יותר מפר כל כלל בספר של עיצוב ממשק משתמש. 6. לשמור הכל יפה יפה אני נותן קידומת U לפני שם הטופס לציין שזו יחידה מורכב מH ומ. CPP אין לי כוונה לפרט יותר מדי על כל רכיב - בשביל זה יש את העזרה (שהיא ממש ממש ממש ממש טובה) אני נותן קצת מידע על חלק מהרכבים כדי שתכלו להתחיל לעבוד. קצת על תכונות מיוחדות של רכיבים תפריטים יש 2 סוגים, אחד יופיע מתחת לכותרת של האפליקציה, השני הוא כאשר לוחצים ימין עכבר. לטופס יש תכונה בשם Menu שקובעת באיזה תפריט ראשי הטופס משתמש כלומר ניתן ליצור מספר תפריטים ואז לבחור בזמן ריצה איזה תפריט יהיה פעיל.

13 13 - Memo ניתן שם לערוך מספר שורות טקסט. נשים לב למספר תכונות : 1. ReadOnly האם ניתן רק לקרוא או גם לערוך. 2. WordWrap האם לרדת לשורה חדשה כשאין מקום (הגדרה ממש לא מדויקת אבל מספיק קרובה ( TStrings שם נשמרות שורות הטקסט, משתנה זה הוא מטיפוס Lines 3. משתנה זה מכיל 2 פונקציות מגניבות לשמירה וטעינה של קובץ טקסט שמותיהם, SaveToFile, LoadFromFile רכיב זה דומה לרכיב RichEdit שגם הוא משמש לעריכת טקסט וכפי ששמו מעיד אליו הוא יותר עשיר עובד עם טקסט עשיר RTF ויודע להדפיס. (RTF Rich Text Format ) תיבת טקסט מאפשר לקלוט מחרוזת מהמשתמש, יש גרסה דומה בכרטסית הנוספים שקולטת סיסמאות. StaticText נועד להציג טקסט, ואם תחפשו היטב תמצאו גם את הרכיב Label שהוא יצור די דומה ובד"כ משמש להצגת תווית שאנו משנה בזמן ריצה. כפתורי רדיו ותיבות סימון מכפתורי רדיו (העגולים) אפשר תמיד לבחור רק אחד, ומתיבות הסימון אפשר לבחור הרבה. ניתן לאחד מספר כפתורים כאילו בקבוצה על ידי GroupBox לדוגמה וכך הם יעבדו ביחד (אחד בשביל כולם וכולם בשביל אחד ( Panel זהו רכיב שתפקידו להכיל רכיבים אחרים הוא ההורה שלהם. יש לו מאפיין בשם Align שקובע להיכן הוא ידבק בעת עיצוב ושינוי הטופס האם ימינה שמאלה או היהי רשע וינסה לתפוס את כל החלון לעצמו. List מציג רשימה של מחרוזות, הנשמרות במשתנה Items שהוא רשימה מקושרת של מחרוזות כמו בMemo, יש לה כמה מאפיינים שרצוי לשים לב : 1. MultiSelect אם ניתן לבחור יותר משורה אחת. 2. ExtendedSelect אם המאפיין הקודם הוא, true אז אפשר לבחור טווח של שורות בעזרת מקשי. shift and ctrl 3. sorted אם למיין את הרשימה, המיון הוא מיון מחרוזות אז אם הרשימה שלכם מכילה מספרים יהיה בלגן 4. ItemIndex מאפשר לבדוק מי נבחר בזמן ריצה (ולכן לא יופיע בזמן עיצוב התוכנית ב ( Object inspector, 0 עבור השורה הראשונה ו 1- עבור כלום. ) כלומר לאיזו שורה יש פוקוס ( הבן דוד של הרשימה נמצא בכרטיסיית נוספים והוא מכיל כפתור תיבת סימון שאפשר להכניס לה V ליד כל פריט. BitBtn כמו כפתור רק יותר מגניב, נשים לב לתכונת kind שאומרת איזה סוג הוא מוסיף ציור חביב על הכפתור ויוצר ערך מוחזר כשנלחץ. StringGrid מאפשר להציג טבלת מחרוזת, יכול להיות מאוד שימושי אבל תקראו את העזרה טוב טוב לפני שתשתמשו בו אני זוכר שהוציא לי את הנשמה עד שהבנתי מה צריך לעשות שם (זה היה כל כך מזמן שאני כבר לא זוכר אז אין לי טיפים בקשר לזה) PageControl נמצא בכרטיסיית win32 ודומה ל, tabcontrol שניהם משמשים כרטיסיות ) כמו אילו שאליהן יש את הרכיבים) או דפים כמו שניתן

14 14 למצוא ב. Editor Options ב PageControl על מנת להוסיף ולהוריד דפים צריך להוריד את הרכיב לטופס,ללחוץ ימין עכבר ולבחור בפעולה המתאימה. כל אובייקט שמייצג דף נקרא, TabSheet ותכונה מרכזית של PageControl היא ActivePage שאומרת איזה דף עכשיו בפוקוס. ImageList משמש לאגירת רשימת תמונות, את הרכיב עצמו לא נראה בזמן ריצה, יש לו עורך שנותן להוסיף ולהוריד תמונות. ProgressBar רכיב שבא לציין התקדמות בפעולה... די נחמד רק תיקחו בחשבון שהוא דורש משאבים (עדכון המסך וכו וכו) ולכן יש סיכוי שיאט את התהליך שלגביו הוא מראה אינדיקציה. להפעלתו קבעו את ערכי מינימום ומקסימום, ולקידום השתמשו בפונקציה StepIt ואל תקדמו ידנית את הערך ב position כפתורים כתפריט בסוף בכרטיסיה יש מספר רכיבים שמאפשרים ליצור כפתורים לגישה מהירה לאפשרויות פעולה אפשר ליצור בעזרתם כפתורי תפריט כמו של סביבת העבודה (כולל גרירה, האלמה וסידור מחדש) תיבות דו-שיח - תיבות פתח קובץ, שמור קובץ וכו תפקידם לקבל את שם הקובץ מהמשתמש. כדי להפעיל אותם פשוט יש לשים את הדיאלוג המתאים בטופס ולהשתמש בפונקציה Execute כדי להפעיל ולהציג את התיבה. במידה והמשתמש לוחץ על OK יוחזר הקבוע mrok והשם המלא של הקובץ הנבחר ימצא במאפיין בשם. FileName כמובן ניתן לקבוע פילטרים ומיקום התחלתי לחיפוש שם הקובץ. זו הייתה סקירה קצרה על חלק מהרכיבים הבסיסים. הגישה שלי היא שכדי לעבוד צריך לדעת מה הכלים העומדים לרשותנו, ואיך ללמוד על הכלים הנל להשתמש בעזרה זה קליל פשוט לוחצים. F1 כאשר קוראים את העזרה של הרכיבים, נשים לב לפרוט המאפיינים, אירועים ופונקציות מחלקה של כל רכיב. נקודה קטנה נוספת בהקשר לרכיבים, לכל רכיב יש הורה ובעל. 1. הורה או בשמו הלועזי parent תפקידו להציג את הרכיב הוא אחראי לציור מחדש אם הוסתר. לדוגמה אם אתם מציגים כפתור על הטופס אז הטופס הוא ההורה של הכפתור (פעם היו קוראים לזה אב אבל התנועה לשחרור האישה התחזקה בשנים האחרונות ועברנו להורה ( 2. בעל owner הוא אותו טיפוס מסתורי שאחראי לשחרור הזיכרון של הרכיב. שימוש ברכיבים זה דבר מדליק וחוסך הרבה עבודה אך תמיד צריך לזכור את החסרונות שבעבודה עם דבר מוכן תופס יותר זיכרון, יותר נפח ועובד יותר לאט. לרוב לא נרגיש את זה אבל אם אתם כותבים מנוע גרפי או מערכת הנחיה לטיל פופאי תעבדו ב C משולב באסמבלר. תרגיל בחרו את רכיב combobox וקראו קצת בעזרה אליו. התחילו פרויקט חדש ובצעו :

15 15 הכניסו לתוכו PageControl וצרו לו 4 דפים. בדף 1 הכניסו רשימה שאפשר לבחור בה הרבה פריטים בדף 2 הכניסו RichText שיכלול לידו 3 כפתורים : טעינה,שמירה והדפסה. בדף 3 הכניסו 2 קבוצות של כפתורי רדיו בדף 4 תתפרעו

16 16 אירועי לב ולמה הם טובים לפני כמה ימים קיבלתי מייל שאומר מה לעשות בזמן של אירוע של התקף לב, נאמר שם שצריך להשתעל בכל הכוח. שמח וטוב לב חשבתי שעכשיו אני יודע מה לעשות באירוע כזה אבל מסתבר שטעיתי והשיטה זהו לא טובה (תודה לענת שאירה את עיני). אומנם אני לא יודע מה לעשות באירוע של התקף לב אבל אני כן יודע מה לעשות בזמן אירוע של לחיצת עכבר, הצגת טופס, לחיצה על מקש ועל זה אני הולך לדבר בפרק הזה. כידוע גברת חלונות היא סביבת עבודה (צולעת פחות או יותר) שמבוססת על אירועים, כלומר הלוגיקה של התוכנית היא שיש להגיב על אירועים של המשתמש ובכך לפעול. בנוסף לכך,התוכנית עצמה יכולה ליצור ולהפעיל אירועים. סביבת העבודה נותנת לנו פטור מלהתעסק עם הודעות של מערכת ההפעלה וכל מה שנותר לנו הוא לבחור רכיב, ומ Object Inspector לבחור לאיזה אירוע אנו רוצים להגיב, ולכתוב את הקוד שיתבצע כתוצאה של האירוע. בלי ללכלך את הידיים לא תלמדו כלום אז קדימה, להעלות את סביבת העבודה, לפתוח פרויקט חדש ולהוסיף לו PageControl שיכלול 3 דפים אשר בכל אחד מהם נכתוב כמה אירועים. דף ראשון : בדף זה נבחן אירוע של לחיצת עכבר, נקרא באנגלית OnMouseDown כמובן יש אירוע של שחרור העכבר ותזוזת העכבר, כל האירועים שניתן ליצור להם פונקצית תגובה נמצאים ב. Object Inspector כאשר אנו יוצרים אירוע תגובה למצב שבו המשתמש החביב לוחץ על העכבר אנו מקבלים מידע על הלחיצה כמובן אין חובה להשתמש במידע זה...אבל כמו שתמיד אני אומר "מידע זה כוח"..., אז מה נקבל : *Sender - TObject בד"כ באירועים שאנו נקבל מצביע לאותו רכיב שיצר את האירוע - קל לראות שהוא מסוג TObject ולכן אם אנו רוצים להשתמש במידע זה יש לבצע המרה או Casting לטיפוס המתאים. - TMouseButton Button משתנה שיכול להכיל ערך שהוא אחד מהשלושה mbleft, mbright, mbmiddle ונותן לנו אינדיקציה איזה כפתור נלחץ. תרגיל כיתה : נחשו מה מציין??mb הראשון שיגלה יקבע סוף שבוע זוגי בחול (עזה ( כרטיסים (צו 8) על חשבון צה"ל. TShiftState Shift זהו משתנה מסוג, Set שיתן לנו מידע איזה כפתורים מהמקלדת היו לחוצים הזמן הקליק. די קל לעבוד עם משתנה מסוג Set תכתבו נקודה ותקבלו את הפונקציות שמשתנה מסוג זה תומך בהם, החשובה לדעתי היא

17 17 Contains שאומרת אם קבוע מסוים נמצא בקבוצה. כמו מיקדום יש מספר קבועים שמציינים כפתורים מקלדת לדוגמה : ssctrl ssalt, לרשימה המלאה גשו לעזרה. int,x int Y הקורדינטות של היכן הייתה הלחיצה. חמושים במידע זה ניצור אירוע שכל לחיצת עכבר שמאלית תוסיף את הקודרדינטות של הנקודה לרשימה ואם לוחצים ותוך כדי כך ה CTRL לחוץ הרשימה תתנקה. הקוד די טריוויאלי, נעבור אליו במהירות, קודם אני בודק שאכן הלחיצה היא של הכפתור השמאלי, ואז אני בודק אם ה CTRL לחוץ בעזרת, Contains במידה וכן אני מנקה את הרשימה ואם לא אני יוצר מחרוזת על פי ה X,Y ומכניס אותה לרשימה. אחרי שעברנו על האירוע הזה אני מצפה ממכם להיות מסוגלים להוסיף אירועים ולהבין כיצד להוציא מידע מאירועים התוכנית שלכם. דרך אגב אם אתם רוצים לבצע לחיצה ויראטולית כלומר לגרום ללחיצה על כפתור מתוך התוכנית אז יש פונקציה שנקראת OnClick שמדמה לחיצה של המשתמש על כפתור. ונעבור לדף השני ובו נפגוש עוד אספקטים מגניבים פחות או יותר של אירועים. דף שני : יש רכיבים שאנו נרצה לאתחל אותם במהלך ריצת התוכנית, לדוגמה למלא רשימות במספרים בטווח מסוים, לעדכן מידע על טופס וכו וכו. בצורה סמטרית אנו נרצה לבצע פעולות כאשר הטופס נסגר. בדף השני יצרתי 2 תיבות קומבו שמילאתי אותן במספרים כאשר הטופס מוצג, כלומר כתגובה לאירוע, OnShow וביציאה מהטופס תוצג הודעה - היא מופעלת על ידי אירוע של OnClose את שתיהן ניתן למצוא באירועים שהטופס מגיב אליהן. אני מנצל את ההזדמנות גם להדגים כיצד ניתן להגן על התוכנה נגד משתמשים טיפשים ויש די הרבה כאלה או מצד שני לעשות להם חיים קלים... נניח שאני צריך לקלוט 2 מספרים שמייצגים טווח - מינימום ומקסימום... אני רוצה למנוע מהמשתמש להכניס לתיבת המינימום מספר שגדול יותר מהמספר במקסימום ולהפך...איך נעשה זאת?? (זו הייתה שאלה רטורית ( ניצור 2 פונקציות תגובה לאירועים...האחד כתגובה לשינוי בתיבת המינימום והשני כתגובה לשינוי בתיבת המקסימום. הרעיון הוא שבמידה והמשתמש מכניס ערך שמפר את האיזון בין מינימום למקסימום אז אנו נעדכן את התיבה השניה בהתאם כך שלא נפר את היחס של מינימום מקסימום.

18 18 אם הצלחתי לבלבל אתכם אם הדוגמה ואתם שואלים את עצמכם מה לעזאזל הוא רוצה אז פשוט תפעילו את הדוגמה,תנסו להכניס ערכים לא נכונים ותראו איך כמו במטה קסם הכל מסתדר כמובן אל תשכחו לעיין בקוד. את כל מה שכתבי שם אפשר לצמצם לבערך 2 שורות אך כתבתי את זה בצורה ברורה ככול שאפשר והקטע החשוב הוא משפט ה IF שבו אני בודק אם min>max דבר שאסור שיתקיים ) כמו מוסיקת טכנו - אבל זו רק דעה שלי) ובמידה וכן מתקיים אני מתקן על ידי עדכון בערכים מתאימים., אני לא זוכר אם הזכרתי את ToInt, אז אזכיר בקצרה, כך הופכים מחרוזת למספר int ואם יש חשד לכך שההמרה לא תצליח נשתמש ב, ToIntDef שמקבלת פרמטר אותו תחזיר אם ההמרה לא הצליחה. תעשו לעצמכם אירוע הפסקה שאחריה נעבור לדובדבן שבקצפת, לטופ של ה Top לדבר שלקח לי חודש שלם (עם הפסקות ( לגלות. דף שלישי : יום אחד היה ערב ואני ישבתי לי וכתבתי פונקציה שחישבה לה משהו לא מסובך אבל עקב הכמות הגדולה של נתונים לקח לה זמן די רב להסתיים ולכן רציתי להוסף כפתור שיאפשר למשתמש לעצור באמצע החישוב ליגיטמי ואפילו די פשוט אבל לא מצאתי בשום מקום איך לעשות זאת... בדף השלישי הכניסו ProgressBar ושני כפתורים, על אחד ייכתב התחל ועל השני עצור. כתגובה לאירוע לחיצה על התחיל צרו לולאה אין סופית שבכל איטרציה תקדם את ה ProgressBar ב מיקום אחד. הריצו את התוכנית... מי שעשה מה שנאמר לו ולא קפץ ישר לקוד המוכן נתקל בבעיה שאף כפתור לא מגיב...אי אפשר לסיים את התוכנית בדרך רגילה אלא רק על ידי סביבת העבודה (לחיצה על PAUSE ואז ( ctrl f2. הבעיה היא שהמחשב "מחשב" את חישוביו ולא מתפנה לטפל באירועים שנוצרים על ידי התוכנית... כדי לפתור את הבעיה נבצע מספר פעולות: 1. בלולאה בנוסף לקידום ה, ProgressBar נומר לתוכנית לבצע את האירועים () שממתינים לה בתור האירועים...זאת על ידי השורה Application->ProcessMessages שבה אנו פונים לאובייקט גלובלי שמייצג את בתוכנית ואומרים לו במפורש לעבד את ההודאות. 2. ניצור תנאי עצירה ללולאה, כל עוד משתנה פרטי בשם Stop הוא שקר הלולאה תמשיך לרוץ (לא נשכח גם לאתחל אותו לפני הכניסה ללולאה). הגדרת משתנה פרטי תתבצע בקובץ ה H של הטופס להגיע לשם על ידי CTRL F6 כשנמצאים בקוד של ה.CPP 3. כאשר המשתמש לוחץ עצור נעדכן את המשתנה Stop להיות אמת דבר שיעצור את הלולאה.. אם לא ההינו מבצעים את שלב אחד אז שינוי ערכו של Stop אף פעם לא היה מתרחש...

19 19 שחקו עם זה... תראו שעובד... עוד נקודה למחשבה... נניח שהוספתם כפתור ולחצתם אליו פעמים - התוצאה היא שנוצרה פונקציה שבה ניתן לכתוב קוד. נניח שלא בא לכם לממש את הכפתור מסיבה כלשהי...בשום אופן אל תמחקו את הקוד שנוצר אוטומטי...תם לא כתבתם אותו אתם לא צריכים למחוק אותו סביבת העבודה מוחקת אוטומטית פונקציות ריקות שהיא יצרה. אם אתם תמחקו אותו זה סתם יבלבל את סביבת העבודה, אפשר להתגבר ולא יקרה שום נזק אבל למה לעבוד קשה... מקווה שעכשיו אם תרצו להגיב לאירוע כלשהו יש בידכם את הכלים והמידע הבסיסי לעשות זאת...גישת תכנות מונחה אירועים שונה מזו של ימי הדוס העליזים ודי מוזרה בהתחלה אבל מתרגלים...

20 20 מי רוצה טופס יצרה ועיצוב של יותר מטופס אחד לומר את האמת, אני לא צריך טופס דחו לי את המילואים אבל זה סיפור אחר... לעומת זאת אני לרוב רוצה לחלק את התוכנית שלי לכמה טפסים שכל טופס אחראי לפעולה אחרת כגון : קלט לנתונים, פלט, הודעות שגיאה שמורכבות קצת יותר ממחרוזת וסימן. X ברמת העיקרון ישנם שלושה סוגי תוכניות נפוצות בסיבת חלונות : MDI בסוג זה יש חלון ראשי וכל החלונות האחרים הם חלונות בנים שלו ויכולים להתקיים רק בתוך המסגרת של החלון הראשי כמו סביבת העבודה של ++C. VISUAL ליצור פרויקט כזה לכו לNEW ואז ל PROJECTS ובחרו באופציה זו. אני מאמין שאחרי קראית הפרק הזה ועם קצת עזרה מהעזרה תוכלו לכתוב פרויקטים מסוג זה. SDI האפליקציה בנויה מחלון ראשי אחד, ליצור אפליקציה כזו יש לבחור כמו מקודם ב NEW וכו כו... די דומה לסוג השלישי אז קדימה. DIALOG אפליקציות מסוג זה הם ברירת המחדל של סביבת העבודה. כשיוצרים אפליקציה חדשה היא מסוג זה. אפשר לפתוח כמה מספר חלונות ולעבוד איתם במקביל או להמתין עד שחלון נסגר...אבל שוב אני מקדים את המאוחר. נתחיל בסקירה מהירה של מספר דברים שחשוב לדעת: אף אחד לא יודע אם P == NP (לא קשור לחומר הזה...) טופס הוא אובייקט לכל דבר, אפשר להוסיף לו משתנים פרטיים, פונקציות מסוג PUBLIC וכמובן להקצות אותו דינאמית. כל טופס שומר את צורת סידור הרכיבים ומיקומם בקובץ עם סיומת DFM שלצערי זה קיצור של DELPHI...ניתן FORM לראות את התוכן בצורת טקסט עם לוחצים ימין עכבר על הטופס ואז "צפייה כטקסט" כמובן באנגלית. כל טופס בפרויקט יכול להיות "זמין" או נוצר אוטומטית ורק טופס אחד יכול להיות הטופס הראשי זה שיעלה ראשון בפרויקט. אני ירחיב על נקודה זו בהמשך... בעצם ההמשך הגיע...נתחיל לכתוב קוד אחרת אנשים יעזבו אותי למען באפי ציידת הערפדים (אני היחיד בעולם שלא ראה אף פרק של זה)... 1.צרו פרויקט חדש..2 בחרו ב : FILE->NEW->FORM 3. תעשו SAVE להכל את הטופס הראשון תשמרו בשם ufrmmain ואת השני תשמרו בשם ufrminput את שם הפרויקט תבחרו לבד...אתם ילדים גדולים. 4. את שמות הטפסים (NAME) תתנו אותו דבר רק בלי U לפני. 5.בטופס הראשון הכניסו כפתור והפונקציה שתופעל על ידי לחיצה אליו תציג את הטופס השני על ידי ufrminput->show();.

21 21 6. לא נשכח את ההגדרה משפט "ufrminput.h" #include בקובץ של הטופס הראשון 7. להריץ ולגלות שכל פעם שלוחצים על הכפתור מתגלה הטופס השני שכעת הוא ריק. כמה נקודות למחשבה: הוסיפו פקודת ShowMessage אחרי פקודת הצגת הטופס והריצו...מה קורה כאן? התוכנית ממשיכה לבצע את הפונקציה של הכפתור לאחר הצגת הטופס...לא טוב אם רוצים להמשיך לפי קלט של משתמש...נפתור זאת בקרוב לכו ל Project->Options->Forms שם תגלו את מה שאמרתי על טפסים זמינים ואילו שנוצרו אוטומטית. טופס זמין יש ליצור אובייקט שלו לפני השימוש כלומר להשתמש ב NEW וכמובן אחר כך ב DELETE כדי לגשת לטופס נשתמש בזה כאשר התוכנית מלאה בטפסים אשר זוללים זיכרון ואנו מרחמים על המחשב המסכן של המשתמש טופס שנוצר אוטומטי נוצר בתחילת התוכנית ואנו יכולים לגשת אליו ולהשתמש בו כלומר להציג אותו לגשת למשתניו וכו וכו... באפליקציות פשוטות תשתמשו רק באופציה זו. טוב... נניח שאנו רוצים לקבל קלט מהמשתמש דרך הטופס השני, ואז להציג אותו בתוך תווית מהטופס הראשון... וכמובן נשתולל ונעשה זאת בעזרת טופס שהוא רק זמין ולא נוצר אטוטמטית... כמובן אני רוצה שהתוכנית לא תמשיך עד שהמשתמש סוגר את חלון הקלט... 1.הוסיפו כפתור חדש ותנו לו כותרת ושם... 2.העבירו את טופס הקלט להיות זמין...(בעזרת > בטופס המתאים שמגיעים אליו דרך Project->Options->Forms 3.בפונקציה נכתוב... : TfrmInput *frm; frm = new TfrmInput(this); frm->showmodal (); delete frm ; אני מגדיר משתנה מסוג הטופס, מקצה לו זיכרון, ומציג אותו... די טריוויאלי 4. נשים את הקוד הקודם של הכפתור הראשון בהערה כי הוא יצור כעת EXAPTION כי הטופס לא קיים... אלא רק זמין שחקו אם זה לראות שהכל עובד. עכשיו לחלק המעניין פחות או יותר, בטופס השני הכניסו תיבת טקסט וכפתור מסוג edinput שם תיבת הטקסט יהיה.BKOK שלו ל KIND ושנו את ה BITBTN הטופס הראשון הכניסו תווית בשם... : labshow כל מה שנשאר לעשות הוא להוסיף את השורה : labshow->caption = frm->edinput->text;

22 22 ברווח של הקוד הקודם... השורה הנל מבצעת השמה מתיבת טקסט הטופס השני לתווית של הטופס הראשון...פשוט וקל... נסו לשחק ולרשום רק Show במקום ShowModal ותראו מה קורה (אם אתם רוצים לראות את הטופס הורידו את השורה של שחרור הזיכרון) אנו ממש קרובים לסיום רק עוד הסבר קצר. טופס שמוצג בעזרת ShowModal ייסגר על ידי השמת ערך למשתנה בשם ModalResult הערכים שהוא מקבל מתחילים ב mr ואז הפעולה כמו, OK בעזרה תמצאו את הרשימה המלאה.. כאשר נתנו KIND לכפתור יצרנו השמה לModalResult כך שהמשתמש לחץ על הכפתור התבצע הכנסת ערך ל ModalResult והחלון נסגר. הפונקציה ShowModal מחזירה את הערך ModalResult שבעזרתו נסגר הטופס, כך אפשר להבחין בין אם המשתמש בחר ביטול, OK או כל פעולה אחרת ולפעול בהתאם. עוד נושא קטן שאם לא אכתוב אליו אני לא ישן בלילה...ואנו לא רוצים שזה יקרה... הטופס כאמור הוא אובייקט, הוא מכיל נתונים שחלקים אפילו נמצא ברכיבים עצמם כמו למשל כותרות של תוויות, השאלה היא האם יש לשמור את המידע הנ"ל בתוך אובייקט נפרד מהממשק הגרפי או להשאיר אותו בממשק... ההיתרון ביצירת אובייקט שמייצג את המידע הוא שקל להעביר אותו בין טפסים שונים בעזרת העברת מצביע ואנו נשמור יפה יפה את כל הכללים שלמדנו בתכנון ++C אבל לפעמים אם יש רק פריט מידע אחד או שנים למה לטרוח ולעבוד קשה... עצתי מניסיון של אלפי שנים... עטפו הכל יפה יפה באובייקט והרחיקו אותו מהממשק שמחר יכול להשתנות... אבל אם אתם מתכנתים בלילה ואף אחד לא רואה אתכם ויש רק קצת מידע להעביר בין הטפסים אפשר ורצוי להשתמש בממשק (בתנאי שלא מספרים לאף אחד) וממש לסיום יש כמה תכונות שמיוחדות לאובייקט טופס : -FormStyle מציין את סוג הטופס בהתאם לסוגי התוכניות שיש בחלונות... החלק שהסברתי בהתחלה. BorderStyle קובע כיצד תראה המסגרת של החלון... קשור לאפשרויות אם ניתן לשנות את גודלו של החלון... יש לשים לב שבאפשרויות מסוימות יעלם לכל התפריט אני משאיר לכם לגלות שאיזה אופציה זה קורה. Position מיקום החלון בזמן ריצה.. היכן הוא יוצג...אני אוהב להציג את החלון במרכז שולחן העבודה WindowState אומר מה מצב החלון כשמוצג אם הוא יהיה מקסימלי מינימלי או נורמלי...לפחות זה מתחרז. תצרו הרבה טפסים בחלומות (חלונות) שלכם... דרך אגב מי שהגיע עד לפה ולא נשבר בדרך כמו איזה רכיכה כבר יכול לעשות דברים די מגניבים

23 23 בואו נעשה את זה בקבוצה (כולם בשביל אחד ואחד בשבילי) בפרק זה אני הולך ללמד אתכם מספר קיצורים שמי שיאמץ אותם בחום אל ליבו ימנע ממנו הצורך לכתיבת קוד מיותר ומכוער אך הזהרה לי מראש לכל הביישנים...אני הולך להשתמש ב dynamic_cast אז מי שלא זוכר זה הזמן לפתוח ספר (אני הולך להסביר בכלליות נראה אם יהיה לי כוח) בחלק הראשון של הפרק אלמד אתכם ידידי היקרים (אנו מכירים כבר 5 פרקים) איך לדוגמה לשנות לכל התוויות בטופס את הצבע נניח...לכחול, או אפשר לעבור על כל תיבות הסימון box) (check ולבטל את כל מי שנבחר או שאפשר ממש להתפרע ולספור כמה רכיבים יש בטופס... למה בכלל אנו צריכים את כל זה?? התשובה פשוטה עיצוב ממשק משתמש, תוכנה ידידותית (שבה המשתמש יכול לשנות את מראה הטופס לדוגמה) יכולה לעשות לו את החיים יפים. כמובן, זה לא מחפר על אלגוריתמים רעים שמאחורי העטיפה הנוצצת (אל תביט בקנקן...כן בטח) למה אני מקדיש לזה פרק שלם? אני לא רוצה לראות בוגרי מדריך זה כותבים קוד מהצורה : CheckBox1->Checked = false; CheckBox2->Checked = false; CheckBox3->Checked = false; CheckBox4->Checked = false;... CheckBox10000->Checked = false; מה יקרה אם מחר נוסיף או נוריד כפתור? אפשר לפתור את הכל בלולאה אחת פשוטה...אז לאחר ההסברים הארוכים ומיגעים פתחו פרויקט חדש ו... הוסיפו תווית, 3 תיבות סימון, ותיבת טקסט, תנו להם שמות וכו (לא ממש חייבים) הוסיפו כפתור שתפקידו לנקות את הטופס. נגדיר כמה כללים כבר כאן כדי שהקוד יכנס במכה אחת לדף הבא. ComponentCount זהו תכונה שאומרת כמה רכיבים חיים בתוך הרכיב שעליו אנו שואלים. כמובן הטופס הוא רכיב ולכן אם נרצה לעבור בלולאה על כל הרכיבים שיש לו נשתמש בתכונה זו. dynamic_cast יחזיר מצביע שהוא לא NULL אם ההמרה של סוגי מצבעים הצליחה כך אפשר לבדוק אם המצביע של הרכיב הנוכחי מצביע לרכיב שעליו אני רוצה לפעול וכמובן לבצע פעולות שלא היו אפשריות כאשר החזקתי מצביע לאב. Components[] זהו מערך של רכיבים שמחזיק הטופס..1.2

24 24 עכשיו לקוד : int i; TComponent *Com; //for index //pointer to a current component for(i=0;i<componentcount;i ++) { Com = this->components[i]; //get the current component //if the component is Check Box if (dynamic_cast<tcheckbox *>(Com)) //if not null do dynamic_cast<tcheckbox *>(Com)->Checked = false; //uncheck it //if the component is Edit if (dynamic_cast<tedit *>(Com)) //if not null do dynamic_cast<tedit *>(Com)->Text = ""; //clear it } ממש סיוט להעתיק קוד לכאן... הלולאה עוברת על כל הרכיבים בטופס, אם הרכיב הוא מסוג טקסט או תיבת סימון אז ננקה אותו ואחרת לא נעשה כלום, כמובן בתוכנית רגילה ההיתי כותב את הקוד אחרת כמו לדוגמה שומר את תשובת ההמרה במשתנה מתאים וכו וכו כאן רציתי לקצר שתבינו את הרעיון.. 3 עוד דוגמית קטנה על אותו נושא.. תנסו לבד ואז תבדקו איך אני עשיתי זאת... צרו כפתור שבלחיצה עליו יפתח DIALOG שיתן לי לבחור כתב, צבע וכו ואז כל הרכיבים בטופס ישתנו לכתב הנ"ל... if (DlgFont->Execute()) //show the dialog { TComponent *Com; //pointer to a current component int i; //for index for(i=0;i<componentcount;i++) //loop { Com = this->components[i]; //get the current component if (dynamic_cast<tedit *>(Com )) dynamic_cast<tedit *>(Com)->Font =DlgFont->Font ; else if (dynamic_cast<tcheckbox *>(Com )) dynamic_cast<tcheckbox *>(Com)->Font =DlgFont->Font; else if (dynamic_cast<tbitbtn *>(Com )) dynamic_cast<tbitbtn *>(Com)->Font =DlgFont->Font ; else if (dynamic_cast<tlabel *>(Com )) dynamic_cast<tlabel *>(Com)->Font =DlgFont->Font ; }}

25 25 בקוד אני מעלה DIALOG ששואל את המשתמש איזה כתב הוא רוצה ואז עובר על הרכיבים הטופס ומשנה את אילו שיש להם כתב, לומר את האמת חשבתי שיש לרכיבים הנ"ל אב משותף שנותן להם את האפשרות לקביעת הכתב בהורשה...טעיתי אין להם לכן אני משנה אחד אחד... טוב עכשיו הפסקה בשבילינו. - שאחריה ניצור מערכים של רכיבים ונקשר את כולם לעבוד המטרה של חלק זה היא ליצור בצורה דינאמית רכיבים בזמן ריצה, למה?? טוב ששאלתם, לדוגמה אם אנו רוצים ליצור מטריצה 20 על 20 של "נקודות" שכל נקודה יכולה להיות מסומנת או לא... לא הגיוני שנשב ונילחץ 400 פעם בזמן עיצוב התוכנית כדי לקבל את המטריצה המבוקשת...המחשב יעשה את זה בשבילינו לפני הקוד כמה נקודות : Tag לכל רכיב יש "תג" שבו אפשר לשמור מספר - עוזר בזיהוי הרכיב הספציפי כך לדוגמה אפשר לומר לתוכנה לסמן את הנקודה ה 33 שאותה נזהה על פי אותו תג. אני אשתמש ב Panel על מנת לייצג נקודות, די נוח כי אפשר להחליף לו את הצבע ויש לו מסגרת כך שאני יכול להבדיל Panel אחד מהשני. נא להיזכר בנושא של Parent אחראי על תצוגה לעומת OWNER שאחראי על שחרור זיכרון מוזכר בפרק 2. הדוגמה תהיהי קצת יותר מורכבת ממה שראינו עד עכשיו אז אחלק את הקוד והפעולות לשלושה חלקים, וודאו שכל חלק עובד לפני שעוברים לחלק הבא. בשלב הראשון אני רוצה ליצור מערך דו ממדי של Panel בגודל 40 עמודות ו 10 שורות. מה מבנה הנתונים שיחזיק את המערך הנ"ל? התשובה בשאלה כמובן מערך (בשלב זה לא נשתמש ב STL כדי שתראו בדיוק איך כל דבר עובד). 1. צרו פרויקט חדש. 2. הגדירו 2 קבועים שיחזיקו את השורות ועמודות. 3. הגדירו משתנה פרטי של אובייקט הטופס על מנת שיחזיק את המערך. TPanel *board[row][col ]; כמובן לא נשכח שתמיד מחזיקים מצביע לרכיב ולא את הרכיב עצמו ולכן יש כוכבית לפני שם המשתנה. 4. צרו Panel בטופס עצמו על ה Panel הזה אנו ניצור את המטריצה. 5. כעת נשאר ליצור את המטריצה זה יקרה בבנאי של הטופס. כשיוצרים רכיב בזמן ריצה אילו מאפיינים אנו צריכים ורוצים לשנות לו: מי האב שלו כלומר מי אחראי לצייר אותו על הטופס

26 26 מיקומו יקבע על ידי הפינה השמאלית עליונה. גודלו יקבע על ידי רוחב ואורך אם יש לו כותרת אז נקבע אותה יחד עם קביעת מאפייני הכתב. אם יש פונקציות שהכפתור צריך להפעיל כתגובה לאירועים זה המקום לבצע את הקישור. אז בלי יותר מדי מילים הביטו בקוד הבא שיוצר את המטריצה : int i,j; //index int cell_height,cell_width; //keep the cell height and wdth cell_height = panmartix->height / ROW; //get proportional height cell_width = panmartix->width / COL; //get proportional width for(i = 0 ; i < ROW ; i++) //loop row for(j = 0 ; j < COL ; j++) //loop col { board[i][j] = new TPanel(this); //create the cell board[i][j]->parent = panmartix; //set the parent set the size// board[i][j]->height = cell_height; //set height board[i][j]->width = cell_width; //set width set position// board[i][j]->top = i * cell_height ; //set top board[i][j]->left = j * cell_width; //set left set color and tag// board[i][j]->color = clgreen; //set color to green board[i][j]->tag = I * ROW + j; //set the tag } בקוד אני מקצה מקום דינאמית עבור Panel ואז בעזרת 2 לולאות אני עובר מנותן ערכים למאפיינים שלהם. שימו לב שגודל "תא" במטריצה הוא פרופורציונלי למספר שורות, מספר עמודות ולגודל הכללי של ה Panel שעליו כל המטריצה יושבת. שימו לב שאם מריצים את התוכנית ונעזרים ב Code gurad לא נקבל הזהרה על אי שחרור משאבים אותם תפסנו על ידי הקצאה דינאמית וזאת בגלל שה OWNER אחראי לשחרור הזיכרון במקרה זה ה OWNER הוא הטופס וקבענו שהוא האחראי בבנאי של ה. Panel

27 27 עכשיו לאחר יצירת המטריצה, נעבור לשלב שני ובו אני רוצה שכל לחיצה על תא במערך תגרום לביצוע 2 פעולות :. 1 תדליק את התא להיות אדום.. 2 תדפיס את ה TAG של התא ככותרת שלו. קוד די פשוט שורות אבל מכוון שזו פונקציה שהולכת להיות מבוצעת כתגובה של אירוע אזי יש לשים לב להגדרה. הקוד : ב Class של הטופס בחלק המוגדר כ published יש לרשום את ההצהרה על הפונקציה : void fastcall Cell_Click(TObject *Sender); ובקובץ ה CPP נרשום את גוף הפונקציה : void fastcall TfrmMain::Cell_Click(TObject *Sender) { TPanel *pan; //pointer to current panel pan = dynamic_cast<tpanel *>(Sender); //cast from TObject if (pan == NULL) //if the click wasnt from a panel return; //dont do a thing pan->caption = pan->tag; //set the caption pan->color = clred; //set the tag } תשנו את שם הטופס להיות השם שאותו בחרתם...ואם אני צודק לא שיניתם בכלל את שם הטופס...ילדים רעים! מי שגורם לאירוע מוצבע על ידי, Sender אנו צריכים להמיר אותו להיות מסוג TPanel כדי שנוכל לעבוד איתו לשנות את הצבע ואת הכותרת. יופי,יש לנו פונקציה מדהימה שמשנה דברים אבל מי שיריץ את הפרויקט ברגע זה לא יראה שום שינוי רק משבצות ירוקות מגעילות ממלאות לו את המסך... לא קישרנו את הפונקציה לתאים במטריצה. חזרו לבנאי של הטופס והוסיפו את השורה הבאה : board[i][j]->onclick = Cell_Click; //set the onclick השורה הנ"ל קובעת איזה פונקציה תתבצע בזמן לחיצה של העכבר. שימו לב שבעצם ביצענו כאן השמת מחרוזות פשוטה.

28 28 בדקו שהפרויקט עובד...ונעבור לחלק השלישי שיכניס קצת (ודגש על קצת) חיים לטופס שלנו. בחלק זה אני רוצה שכל שניה שעוברת כל משבצת שנמצאת מימין למשבצת אדומה גם תידלק, כמובן נוסיף כפתור שידאג לניקוי כללי של הטופס. נתחיל מהכפתור ניקוי יותר קל... הוסיפו כפתור שהתגובה ללחיצה עליו היא מעבר על כל המטריצה וקביעת הכותרת להיות מחרוזת ריקה והצבע לירוק. הקוד ממש דומה לקוד שמופיע בבנאי ולכן אני לא טורח להעתיק אותו מהדוגמה... עכשיו, כדי לגרום לפעולה להתבצע כל שניה, נוסיף שעון שמיצר לנו אירוע כל זמן והוסיף אותו לטופס וליצור SYSTEM אז זה הזמן קבוע... רכיב השעון נמצא ב את פונקצית התגובה שלו. אז... כל שניה אנו נעבור על כל המטריצה(ללא הטור הכי ימיני...תחשבו לבד למה) ואם התא הנוכחי אדום אז נדליק את התא הימיני שלו על ידי לחיצה "ויראטולית" שתגרום לו להיות אדום ובכך נקבל את מה שרציתי. גבירותיי ורבותיי הקוד : int i,j; //index loop for(i = ROW-1 ; i >= 0 ; i--) //loop row for(j = COL-2 ; j >=0 ; j--) //loop col if (board[i][j]->color == clred) //if col is red Cell_Click (board[i][j+1]); //set the next to be red to הסיבה שאני מבצע לולאה הפוכה היא בגלל שאם אדליק את התא הימיני ואז אבדוק אם הוא אדום (והוא יהיה אדום וכתוצאה מכך ידליק את התא הימיני שלו) אז נקבל מעיין אפקט דומינו שבכל שניה כל השורה הופכת להיות אדומה (תנסו לבד אם אתם לא מאמינים לי). להפעיל את הפונקציה פשוט קוראים לה ומעבירים כפרמטר את מי שקרא לפונקציה, יתבצע אולי קצת עבודה מיותרת כי אפשר היה במקום לשנות את הצבע של התא הימיני אבל הקוד כך יותר ברור ונקי ואם מחר נוסיף עוד פעולות ללחיצה הם יתווספו אוטומטית גם לאירוע של הזמן. זהו זה, אנשים מקווה שהפרק הזה תרם לכם ושהיה כיף לעבור אליו, ברמת העיקרון אנו בהתחלה של הסוף... לא נשאר עוד הרבה.. עדי

29 29 שמור את חוכמת החיים בקובץ כפי שאפשר בקלות להבין מהשם של הפרק אני הולך לדבר על קבצים, איך ליצור אותם, איך לעבוד איתם וכו וכו. מי שמכיר את ofstream וחבריו וחושב לעצמו לדלג על הפרק שישכח מזה אני הולך לדבר כאן על דברים אחרים. איפה אני? לפעמים רצוי וכדאי לדעת מאיזו ספריה הופעלה התוכנית, כלומר מהו ה PATH של התוכנית, שימושי לדוגמה עם רוצים ליצור תת מחיצה. הקוד : AnisString temp(paramstr(0)); temp = ExtractFilePath(temp); התוצאה של שתי השורות הנל היא שבמשתנה temp יש את ה path לתוכנית. אפשר ללמוד עוד מספר דברים מהדוגמה : - הוא פונקציה שבעזרתה אפשר לקבל את הפרמטרים שנשלחו ParamStr לתוכנית, אינדקס 0 הוא הדרך לתוכנית כולל שמה כמו ב. C בשורה ראשונה אנו מפעילים בנאי של מחרוזת עם מחרוזת. ExtractFilePath זוהי פונקציה שמחזירה את PATH לתוכנית כאשר הפרמטר שהיא מקבלת הוא מחרוזת שמתארת דרך לתוכנית. יש לה הרבה בני משפחה והם : ExtractFileDir.1 ExtractFileDrive.2 ExtractFileExt.3 ExtractFileName.4 אפשר בקלות להבין מה תפקידם על פי שמם. בזמנכם הפנוי כיתבו תוכנית שמקבלת שם מלא של קובץ ומציגה בתוויות שונות את התוצאות של הפעלת הפונקציות הנ"ל על שם הקובץ. מחיצות על מנת לעבוד עם מחיצות דבר ראשון יש לרשום את השורה : #include <FileCtrl.hpp> יש מספר פונקציות שקשורות לטיפול במחיצות : - מחזיר אמת אם המחיצה path); bool DirectoryExists(AnsiString המתקבלת כפרמטר קיימת. - יוצר את הספריה המבוקשת ומחזיר path); bool CreateDir(AnsiString אמת אם הצליח. יש עוד הרבה פונקציות הקשורות לטיפול בקבצים ומחיצות, השנים שהזכרתי בהן אני משתמש הכי הרבה, במידה ותרצו לעשות משהו שקשור לקבצים תגשו לעזרה נניח

30 30 של DirectoryExists ומשם אל קטגורית הפונקציות הקשורות לקבצים מאוד טכני אין טעם לפרט עוד. דרך אגב לא לשכוח לרשום \\ במקום \ כשעובדים עם ספריות!!!! לסיום הקבצים עצמם מי שרגיל לעבוד עם, stream יכול לוותר על הקטע הבא שבעזרתו ניתן לרשום בצורה בינארית נתונים לקובץ. בניגוד ל C שם אנו יוצרים משנתה שהוא מצביע לקובץ, כאן אנו נפנה לקובץ בעזרת פונקציות שנעביר להן int,כמזהה לקובץ. הפונקציות הן : bool FileExists(AnsiString filename); int FileCreate(AnsiString filename); int FileOpen(AnsiString filename,int mode); int FileRead(int handel,void *buffer,int count); int FileWrite(int handel,coid *buffer,int count); bool DeleteFile(AnsiString filename); void FileClose(int handel); המצבים שאפשר לפתוח את הקובץ איתם הם משתנים שמתחילים ב fm כלומר File mode ואז נכתוב Open כך נקבל לדוגמה fmopenread יפתח את הקובץ לקריאה, את הרשימה השלמה תקבלו מהעזרה על. FileOpen שימו לב למספר הנקודות הבאות : פתיחה או יצירה של קובץ מחזירים, int אותו int ישלח ל FileRead לדוגמה על מנת שנדע מהיכן לקרוא. מספר שלילי בפתיחת קובץ אומר שלא הצלחנו לפתוח אותו לא להתעצל ולבדוק שאכן מצליחים. אם הקובץ לא קיים לא תצליחו לפתוח אותו בעזרת FileOpen ויש ליצור אותו בעזרת FileCreate לכן אני תמיד בודק אם הקובץ קיים ואז פותח או יוצר אותו. FileRead ו FileWrite גם מחזירים מספר שלם שאומר כמה בתים שמרנו או קראנו מהקובץ אם נקבל תשובה שהיא מספר שלילי סימן שלא הצלחנו. אין יותר מדי מה לדבר על קבצים, פשוט תתחילו לעבוד איתם וכל עוד שמבצעים בדיקות תקינות אין שום סיבה להסתבך.

31 31 דיאלוגים יש Dialogs סטנדרטים של פתיחת וסגירת קובץ, כמה מפתיע אבל הם נמצאים ב TAB של ה. Dialogs אם לאחר הצגתם המשתמש בחר בקובץ ואז OK או לחץ לחיצה כפולה על קובץ אזי במאפיין FileName של הרכיב שמייצג את הדיאלוג יופיע השם המלא של הקובץ. שווה לשחק אם הפילטרים, כך שיוצגו רק קבצים בעלי סיומת שקשורה לתוכנית שלכם בפתיחת הדיאלוג,במאפיינים של רכיב הדיאלוג לחיצה כפולה על מאפיין ה FILTER יציג את עורך הפילטרים שם תנו תיאור לכל פילטר ומהו הסיומת שקשורה אליו. מילת הזהרה בקשר לשימוש בפילטרים, כבר קיבלתי מקרים בהם התוכנה הוסיפה אוטומטית את הפילטר לשם הקובץ כך לדוגמה רציתי לפתוח את הקובץ בשם : Adi.txt ול FileName נכנס Adi.txt.txt.לקח לי די הרבה זמן להבין מה קורה. בזמן כתיבת הקוד, תבדקו שאכן אתם מקבלים מה שאתם מצפים לקבל. יש עוד מלא מלא דברים שאפשר לעשות עם קבצים,נגעתי רק במקומות החשובים וגם זה היה ממש על קצה המזלג, במידה ואתם רוצים לעשות משהו שלא מוסבר כאן לכו לעזרה ומשם תבוא לכם הישועה. מקווה שהיה לכם לפחות משעמם לקורא את הפרק כמו שלי היה לכתוב אותו אבל בתיקווה שכן עזר לכם להבין מי נגד מי למה וכמה.

32 32 עוד דברים כללים לסיום דברים חשובים, שלא יתפסו פרק שלם אבל צריך להקדיש להם מספר מילים : הפרויקט עצמו. מציאת.BUGS חריגים ומיקומם בחברה. רכיבים. הפרויקט עצמו שווה להקדיש כמה דקות להבין את כל האפשרויות שמקבלים כאשר הולכים למאפייני הפרויקט דרך התפריט : project-->options שם יש מספר : TAB -Application שם אפשר לקבוע את שם התוכנית ולשנות את ה ICON ברירת המחדל מבניין רב קומות למשהו יותר מתאים. Compiler שם אפשר לבקש אופטימזציה של הקוד, אילו הזהרות יש להציג ולקבול דברים כללים בקשר לקומפילציה שתנו רק אם אתם יודעים מה אתם עושים. מחיצות שם אפשר לקבוע היכן ישמרו הקבצים שהמחשב יוצר אם לא משנים כל הקבצים נוצרים במקום אחד, דבר היוצר "בלגן" אדיף לחלק את הקבצים למחיצות, מחיצה לקבצי ה OBJ ומחיצה לקובץ, EXE נקבע אותם על ידי נתינת ערך ל. intermediate output, final output כך שבספריה הראשית ישמר רק קוד אותו אני לגבות לאחר השלמת פעולה מסוימת. Packages אילו חבילות רכיבים סביבת העבודה תכיר. כל הכפתורים תוויות תיבות טקסט וכו נמצאים בחבילות הסטנדרטיות שמופיעות שם עם V ליד. בדף זה יש אפשרות לבקש RUNTIME PACKAGES דבר האומר שהתוכנה תחפש את הPackages בזמן ריצה, במילים אחרות שאתם משוויצים בתוכנה שלכם לא יספיק ה EXE ויש להוסיף עוד כמה קבצי עזר שהם החבילות, לכן אני ממליץ בחום להוריד את ה V באפשרות זו כך שה EXE יעמוד בפני עצמו. יש עוד הרבה אפשרויות אותן תלמדו עם הזמן, מניסיון רצוי לקבוע את כל המאפיינים לפני כתיבת התוכנית ואז להתחיל לעבוד - כמובן שאפשרי לשנות לאחר סיום כתיבת התוכנית אבל לי באופן אישי זה עשה בעיות יותר מפעם אחת.

33 33 מציאת BUGS את הטעויות של חסר נקודה פסיק וכו די קל למצוא כל מה שיש לעשות זה לקרוא טוב את הודעת השגיאה, הבעיה היא למצוא את הטעויות הלוגיות, בשביל זה יש אפשרות לשים "נקודות עצירה", על ידי לחיצה משמאל לקוד דבר שיצבע את השורה באדום, וכאשר התוכנית תגיע למקום הנ"ל היא תעצור. כאן אין הבדל בין הרצת התוכנית במצב DEBUG או במצב רגיל, כלומר אם יש נקודת עצירה התוכנית תעצור. יש אפשרות לקבוע מאפיינים לנקודת העצירה על ידי לחיצה בימים עכבר על הנקודה האדומה שמייצגת את נקודת עצירה ובחירת מאפיינים מהתפריט. F7 אומר מעקב אחרי ביצוע תוך כדי כניסה לפונקציות. F8 מעקב שכולל אי היכנסות לתוך פונקציות. F9 המשך לרוץ. Ctrl + f2 אם נלחץ באשר יש פוקוס על הקוד, יגרום להפסקת ריצת התוכנית (במידה ויש תוכנית שרצה כמובן) אם עומדים מעל משתנה מסוים בזמן ריצת התוכנית, יוצג הערך שיש בתוכו ואם עומדים אחרי ביטוי חישובי יוצג הערך שהביטוי נותן. כמובן ניתן להגדיר WATCH LIST שדרכו ניתן לראות את הערך של מספר משתנים בו זמנית. בזמן הרצת התוכנית, ניתן ללחוץ בעזרת כפתור ימין של העכבר,ולבחור בDEBUG ומשם להגיע לאפשרויות של שינוי וצפייה במשתנים, צפייה ב CPU ועוד דברים שיעזרו לכם למצוא היכן כתבתם שטויות בקוד. לא יאופשר לכם לבצע בDEBUG אם במאפיין הפרויקט ב TAB של ה LINKER הורדתם את ה V של יצירת מידע בDEBUG ( Create debug information), זהו קובץ די גדול שישמר ליד הקובץ ה. EXE ישנם מקרים שתקבלו שגיאות LINKER אז דבר ראשון יש להתפלל ולהבטיח להיות טובים אם מצליחים לפתור את ה BUG הנ"ל, ואז להתחיל לנסות לפתור. אחת השגיאות הנפוצות מסוג זה שקרו לי היא שעבדתי עם מספר קבצים, עשיתי include כמו שצריך אבל לא הוספתי את הקבצים לפרויקט בעזרת Shift-f11 או בעזרת התפריט, דבר זה נותן... UNRESOLVED EXTERNAL ברגע זה חסכתי לכם הרבה עבודה וייסורים. במידה וזו לא הבעיה, נסו ללמוד אליה כמה שיותר מהעזרה ולכו למאפייני הפרויקט כדי לשנות שם פרמטרים כך שהכל יעבוד. בדיחה לסיום : מתכנת יושב עם חברה שלו ומעשן סיגריות, היא אומרת לא שזה לא טוב ואפילו כתוב על הקופסה "אזהרה : משרד הבריאות קובע...", אז הוא אומר לה שמתכנתים לא מעניין אותם אזהרות רק שגיאות (באנגלית נשמע יותר טוב)

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ ניפוי שגיאות )Debug( מאת ישראל אברמוביץ בדף העבודה יש תירגול בסביבת העבודה לשפת #C לסביבות עבודה אחרות. )2015 )Visual Studio אך היא מתאימה גם לשפת Java וגם o 1. ריצה של כל התוכנית ועצירה בסוף יש לבחור

More information

ASP.Net MVC + Entity Framework Code First.

ASP.Net MVC + Entity Framework Code First. ASP.Net MVC + Entity Framework Code First 1 הקדמה בפרק הזה יוצג שימוש בFirst EntityFramework Code עבור ה use case הבאים : ASP.Net MVC ASP.Net Web API ASP.Net MVC + Scaffolding הערה : Framework Entity הוצג

More information

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת. 1 (Liquid Crystal Display) תצוגת LCD בפרויקט ישנה אפשרות לראות את כל הנתונים על גבי תצוגת ה- LCD באופן ברור ונוח. תצוגה זו היא בעלת 2 שורות של מידע בעלות 16 תווים כל אחת. המשתמש יכול לראות על גבי ה- LCD

More information

המבנה הגאומטרי של מידה

המבנה הגאומטרי של מידה התוכנה מאפשרת לרשום מידות מסוגים שונים בסרטוט, במגוון סגנונות ובהתאם לתקנים המקובלים. רצוי לבצע מתן מידות בשכבה המיועדת לכך. לכל מידה יש תכונות של בלוק. תהליך מתן המידות מתחיל תמיד מקביעת סגנון המידות.

More information

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי WPF-Windows Presentation Foundation Windows WPF טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי Client חכמים המשלב ממשקי משתמש,תקשורת ומסמכים. מטרת התרגיל : ביצוע אנימציה לאליפסה ברגע

More information

מדריך לתכנת הגימפ Gimp) (The חלק מהמידע במדריך זה מובא מהקישור- http://www.jlc.org.il/forums/viewtopic.php?p=900&sid=d801ea3d13f7ae97549e28a56a4ce0cb GIMP היאתכנה חופשיתרבתאפשרויותבתחום הגראפיקהועריכתהתמונות,

More information

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 7 מבוא לתכנות ב- JAVA תרגול 7 שאלה )מועד א 2013( לפניך מספר הגדרות: תת מילה של המילה word הינה רצף של אותיות עוקבות של word פלינדרום באורך le היא מילה בעלת le אותיות שניתן לקרוא אותה משמאל לימין וגם מימין

More information

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of the rule. (Choose three cards appropriate to the lesson

More information

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות. סריקה לרוחב פרק 3 ב- Kleinberg/Tardos קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות. קשירות.s,t V שני צמתים,G=(V,E) קלט:

More information

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות תכנות בסביבת האינטרנט 1 כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות כפתור רדיו משמש למקרים שבהם יש לבחור באפשרות אחת מתוך רשימת האפשרויות שבקבוצה. למשל: שאלון רב-ברירות )שאלון אמריקאי( שבו יש רק תשובה אחת

More information

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית נושאים: מערכים, רשימות מרצה ומתרגלים אחראים: איתן בכמט, איסנה וקסלר, רז ניסים תאריך פרסום: 11.21 תאריך הגשה:

More information

מבוא למחשב בשפת פייתון

מבוא למחשב בשפת פייתון 234221 מבוא למחשב בשפת פייתון 3 מבני בקרה ולולאות פרופ' ראובן בר-יהודה דין לייטרסדורף הפקולטה למדעי המחשב הטכניון מכון טכנולוגי לישראל נערך ע"י יעל ארז 1 פקודות והזחות 2 פקודה פשוטה >>> 3+2 5 >>> x = 5

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים משחק בול פגיעה שעור 2 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDIT 15 1ST 00045000 I.M 2ND 00039500

More information

A Long Line for a Shorter Wait at the Supermarket

A Long Line for a Shorter Wait at the Supermarket A Long Line for a Shorter Wait at the Supermarket - New York Times Page 1 of 4 A Long Line for a Shorter Wait at the Supermarket Sam Baris directing customers at Whole Foods in Columbus Circle, where the

More information

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES Sinning in Disguise Like people of all faiths, Jews sometimes do things or go to places they are not supposed to. This session is not about

More information

Practical Session No. 13 Amortized Analysis, Union/Find

Practical Session No. 13 Amortized Analysis, Union/Find Practical Session No. 13 Amortized Analysis, Union/Find Amortized Analysis Refers to finding the average running time per operation, over a worst-case sequence of operations. Amortized analysis differs

More information

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative Hebrew Ulpan HEB 011-031 Young Judaea Year Course in Israel American Jewish University College Initiative Course Description Hebrew is not only the Sacred Language of the Jewish people, but it is also

More information

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא: שאלה 1 עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא: 99 80 50 15 40 34 30 22 10 13 20 13 9 8 א. ב. ג. האם העץ

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים תנועה בעזרת קוד שעור 9 הישגיים 2 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDIT 15 1ST 00472000 G.F 2ND

More information

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשסו 2006 כתבה: יעל בילצ'יק (סופרין) יסודות 1 מדריך מעבדה לסביבת העבודה Visual C# Express כתבה: יעל בילצ'יק (סופרין) מהדורת עיצוב תשס"ו 2006 אוניברסיטת תל-אביב החוג להוראת המדעים מטה מל"מ המרכז הישראלי להוראת המדעים ע"ש עמוס דה-שליט משרד

More information

לשרטוט חשמלי בתוכנת OrCad-Capture

לשרטוט חשמלי בתוכנת OrCad-Capture חוברת עזר לשרטוט חשמלי בתוכנת OrCad-Capture כתב: רימונד מנסור סמסטר חורף תשס"ח 1 .1 הקדמה תוכנת ה - OrCad מהי?... 3 2. התחלת פרויקט חדש... 3 2.1 הפעלת תוכנת ה-... OrCad 3 2.2 פתיחת פרויקט חדש... 4 2.3

More information

A R E Y O U R E A L L Y A W A K E?

A R E Y O U R E A L L Y A W A K E? A R E Y O U R E A L L Y A W A K E? ב ר ו ך א ת ה י י א לה ינ ו מ ל ך ה עו ל ם, ה מ ע ב יר ש נ ה מ ע ינ י ות נ ומ ה מ ע פ ע פ י Blessed are You, Hashem our God, King of the Universe, who removes sleep from

More information

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד רשתות מחשבים עומר רוזנבוים 1 DNS פרק 4 ג' שכבת האפליקציה, פרוטוקול ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים מאת 1 בסיום הפרק נדע: מה תפקיד פרוטוקול?DNS לשם מה צריך?DNS מהי ההיררכיה של כתובות דפי האינטרנט? מהו,TLD

More information

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 מבוא לתכנות - פיתוח משחקים ב Action Script 3.0 כל מה שמעצב משחקים צריך לדעת בשביל לעבוד עם מתכנתים משחק טקסט שעור 3 1P 0 AS3 2P 0 HIGH SCORE RANK SCORE NAME CREDI 15 1S 00079000 G. 2ND 00079000 S.G 3RD

More information

מדריך למשתמש בשירות. yes MultiRoom

מדריך למשתמש בשירות. yes MultiRoom מדריך למשתמש בשירות yes MultiRoom תוכן עניינים מבוא 3 תנאיסףלהצטרפותלשירות 3 ה ג ד ר ו ת 3 השימושבשירות 4 הגבלות 7 שאלותנפוצות 8 מבוא שירות yes MultiRoom מאפשר צפייה בתכנים המוקלטים שלכם ובתכני ה - VOD

More information

SPSS 10.0 FOR WINDOWS

SPSS 10.0 FOR WINDOWS האוניברסיטה העברית בירושלים הפקולטה למדעי החברה המח' למדע המדינה והמח' לסוציולוגיה ואנתרופולוגיה SPSS 10.0 FOR WINDOWS חוברת הדרכה בסיסית מירי בנטואיץ' הוכן לשיעור במתודולוגיה של ד"ר מיכאל שלו ירושלים,

More information

Visual C# Express Edition 2005

Visual C# Express Edition 2005 1 הכרות עם Visual C# Express Edition 2005 C# מדריך מצולם להתקנה ועבודה ראשונית עם Express ארז קלר www.coner.co.il 2 C# Express מייקרוסופט פיתחה סדרת כלי פיתוח חינמיים עבור סטודנטים,תלמידים ומפתחים חובבים.

More information

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור קארדינטת קטבית y p p p במישר,y הגדרנ נקדה על ידי המרחקים מהצירים. ז מערכת ישרת זית )קרטזית( אשר בה יש לנ צירים מאנכים זה לזה. באת מישר ניתן להגדיר נקדה על ידי זית רדיס קטר. (, ) הרדיס קטר מסתבב )נגד כין

More information

מדריך מקוצר Microsoft Office Word 2007

מדריך מקוצר Microsoft Office Word 2007 מדריך מקוצר Microsoft Office Word 2007 Word 2007 מאפשר עבודה פשוטה, יעילה ומלווה בתצוגה עשירה של לחצנים זמינה בהתאם לצרכי המשתמש הכרת רצועת הכלים לקבלת רצועת הכלים החדשה נפרסת בחלק העליון של ה- Word עזרה

More information

THINKING ABOUT REST THE ORIGIN OF SHABBOS

THINKING ABOUT REST THE ORIGIN OF SHABBOS Exploring SHABBOS SHABBOS REST AND RETURN Shabbos has a multitude of components which provide meaning and purpose to our lives. We will try to figure out the goal of Shabbos, how to connect to it, and

More information

מדריך שימוש בדואר האלקטרוני

מדריך שימוש בדואר האלקטרוני מדריך שימוש בדואר האלקטרוני Live@Edu UserName@Campus.haifa.ac.il תוכן עניינים א. מבוא... 2 מהי מערכת? Live@edu... 2 קבלת פרטי כתובת הדואר האלקטרוני:... 2 ב. כניסה ראשונית לחשבון הדואר האלקטרוני... 2 השלמת

More information

Reflection Session: Sustainability and Me

Reflection Session: Sustainability and Me Goals: Participants will: identify needs in their home communities apply their sustainability learning to the conditions of their home communities design a sustainable project idea and evaluate the ideas

More information

Patents Basics. Yehuda Binder. (For copies contact:

Patents Basics. Yehuda Binder. (For copies contact: Patents Basics Yehuda Binder (For copies contact: elissa@openu.ac.il) 1 Intellectual Property Value 2 Intellectual Property Rights Trademarks Copyrights Trade Secrets Patents 3 Trademarks Identify a source

More information

תכנות בטוח חלק ב ' מאת עידו קנר

תכנות בטוח חלק ב ' מאת עידו קנר תכנות בטוח חלק ב' מאת עידו קנר הקדמה מאמר זה הינו חלק ההמשך של המאמר העוסק בנושא "התכנות הבטוח" אשר פורסם בגליון השביעי של.Digital Whisper בחלק הקודם הצגתי מקרים מאוד פשוטים וברורים אודות כמה מגישות בתכנות

More information

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk מכונת מצבים סופית תרגול מס' 4 1 מכונת מצבים סופית Finite State Machine (FSM) מודל למערכת ספרתית מכונת מצבים סופית: קלט: סדרה אינסופית של אותיות...,I3,I1,I2 בא"ב input out פלט: סדרה אינסופית של אותיות O

More information

מבוא לשפת C תירגול 1: מבוא מבוא לשפת סי - תירגול 1

מבוא לשפת C תירגול 1: מבוא מבוא לשפת סי - תירגול 1 מבוא לשפת C תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234112 חדשות הקורס תרגילי בית הרצאות ותירגולים חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... 2 אתר הקורס 3 רשימת תפוצה חובה להירשם! הודעות

More information

מדריך למשתמש התקנה עצמית

מדריך למשתמש התקנה עצמית 256 מדריך למשתמש התקנה עצמית תכולת הערכה 1 1 מחבר חשמלי 1 כבל,DSL עבור חיבור לשקע DSL 1 כבל רשת שקע עבור חיבור עבור למחשב חיבור למחש 1 נתב 2 שלב א' חיבור לחשמל וחיווי נוריות חיבור לחשמל חבר את כבל החשמל

More information

מבוא לשפת C מבוא לשפת סי - תירגול 1

מבוא לשפת C מבוא לשפת סי - תירגול 1 מבוא לשפת C תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234112 חדשות הקורס תרגילי בית הרצאות ותירגולים חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... 2 אתר הקורס 3 רשימת תפוצה חובה להירשם! הודעות

More information

פקס בחיבור המכשיר המשולב לפקס יש לעבור על השלבים הבאים: - חבר את כבל הטלפון לחיבור ה- LINE בגב המדפסת ואת צידו השני לשקע הטלפון בקיר.

פקס בחיבור המכשיר המשולב לפקס יש לעבור על השלבים הבאים: - חבר את כבל הטלפון לחיבור ה- LINE בגב המדפסת ואת צידו השני לשקע הטלפון בקיר. פקס בחיבור המכשיר המשולב לפקס יש לעבור על השלבים הבאים: חבר את כבל הטלפון לחיבור ה LINE בגב המדפסת ואת צידו השני לשקע הטלפון בקיר שקע LINE שקע טלפון בקיר במידה ויש בנקודה הנוכחית טלפון נוסף, יש באפשרותך

More information

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37 FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO. 652082/2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37 Translated from the Hebrew Sharf Translations Message sent From: Tomer Shohat

More information

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

לתוכנה שכותבים, כמו פונקציה זו, קוראים קוד הגדרת פונקציות מבוא לתכנות מדעי וסטטיסטי R פונקציות, ו חלק 4 בנוסף לפונקציות שמגיעות מוכנות יחד עם המערכת exp) mean,,c וכו'), אפשר לכתוב פונקציות חדשות פונקציות נקראות לעתים "פרוצדורות" או "סאב-רוטינות"

More information

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball PRONOUNS: טריגר/ משחק פתיחה- המורה תביא לכיתה חפצים שונים ותראה אותם לכמה שניות לתלמידים ותכסה את החפצים. המורה תבקש מהתלמידים לשחזר את החפצים על פי זיכרון ותרשום את שמם על הלוח )מה שלא זכרו אח"כ המורה

More information

אנגלית (MODULE E) בהצלחה!

אנגלית (MODULE E) בהצלחה! 3 בגרות סוג הבחינה: מדינת ישראל חורף תשע"ט, 2019 מועד הבחינה: משרד החינוך 016481 מספר השאלון: א. משך הבחינה: שעה ורבע אנגלית שאלון ה' (MODULE E) ג רסה א' הוראות לנבחן מבנה השאלון ומפתח ההערכה: בשאלון זה

More information

Genetic Tests for Partners of CF patients

Genetic Tests for Partners of CF patients Disclaimer: this presentation is not a genetic/medical counseling The Annual Israeli CF Society Meeting Oct 2013 Genetic Tests for Partners of CF patients Ori Inbar, PhD A father to a 8 year old boy with

More information

תרגול 8. Hash Tables

תרגול 8. Hash Tables תרגול Hash Tables ds-ps חידה מהשיעור הקודם בכל השקים המטבעות שוקלים ורק בשק אחד המטבעות שוקלים.. מותר לנו לבצע שקילה אחת בלבד! איך נדע מה השק הקל יותר? שקים עם מטבעות ds-ps מה היה לנו דיברנו על מבני נתונים

More information

יסודות מבני נתונים. תרגול :9 ערימה - Heap

יסודות מבני נתונים. תרגול :9 ערימה - Heap יסודות מבני נתונים תרגול :9 ערימה - Heap maximum שאלה: כמה זמן לוקח לחפש איבר בערימה? תשובה:,O(n) למרות שבערימה קיים סדר מסויים. Heaps 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 דוגמה: 7 11 13 21 12 17 20 34

More information

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו פרק 7 פקודות אריתמטיות, לוגיות והזזה ברק גונן 1 תוכן הפרק פקודות אריתמטיות ADD, INC SUB, DEC MUL DIV פקודות לוגיות AND OR XOR NOT פקודות הזזה SHL SHR ברק גונן 2 פקודת ADD מחברת את אופרנד המקור עם אופרנד

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. קיץ תשע"ד, מועד ב, 2014 מועד הבחינה: מספר השאלון: 416 016117, Thinking Skills נספח: כישורי

More information

מדריך למשתמש התקנה עצמית

מדריך למשתמש התקנה עצמית 225 מדריך למשתמש התקנה עצמית תכולת הערכה 1 1 מחבר חשמלי 1 כבל DSL 1 כבל רשת * הטקסט בחוברת מנוסח בלשון זכר, אך פונה לשני המינים. שלב א' חיבור לחשמל וחיווי נוריות 2 חיבור לחשמל חבר את כבל החשמל אל שקע ה-

More information

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס אני ואתה: בובר ורוג'רס תרגום ועיבוד: זמירה הייזנר Translated and adapted from The Martin Buber Carl Rogers Dialogue: A New Transcript with Commentary by Rob Anderson and Kenneth N. Cissna, published by

More information

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories sharing אירוע SPECIAL באוסקר ווילד הוא שילוב מדהים בין אוכל לשתיה FOOD & DRINKS תפריט מגוון מבחר משקאות מכל העולם ואווירת CASUAL שמאפיינת את האופי האותנטי של המקום מרכז שולחן פלטת ירקות אדממה נאצ וס כבד

More information

בוחן בתכנות בשפת C בצלחה

בוחן בתכנות בשפת C בצלחה בוחן בתכנות בשפת C ) כתוב תכנית הקולטת ממשתמש מספרים שלמים ומדפיסה כמה מספרים היו גדולים מ-, כמה מספרים היו קטנים מ-, וכמה מספרים היו שווים ל-. 2) כתוב תכנית הקלטת עשרה מספרים טבעיים ומחשבת את הממוצע שלהם.

More information

פולימורפיזם. blog.csit.org.il מדעי המחשב

פולימורפיזם. blog.csit.org.il מדעי המחשב 1 פולימורפיזם להסתכל על אותו אובייקט בצורות שונות. אובייקט של תת-מחלקה )המחלקה הנגזרת( הוא גם אובייקט של מחלקת העל )מחלקת הבסיס( )כלב הוא גם בעל-חיים וגם יונק(. פולימורפיזם מאפשר להשיג שתי מטרות: לטפל

More information

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי( בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"א, 2011 מועד הבחינה: משרד החינוך 016117 מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת א. משך הבחינה: שעה וחצי שאלון

More information

/ פתיחת החשבון הכרחית רק למרצה / מתרגל ונעשית רק בעת הכניסה הראשונה.

/  פתיחת החשבון הכרחית רק למרצה / מתרגל ונעשית רק בעת הכניסה הראשונה. כניסת מרצה כניסת סטודנטים /https://b.socrative.com/login/student /https://b.socrative.com/login/teacher שלב הרישום פתיחת החשבון הכרחית רק למרצה / מתרגל ונעשית רק בעת הכניסה הראשונה. https://b.socrative.com/login/teacher/#register-free/info

More information

מבוא למחשב בשפת Matlab

מבוא למחשב בשפת Matlab מבוא למחשב בשפת Matlab תרגול 10: רקורסיה מבוסס על שקפי הקורס "מבוא למדעי המחשב" ובסיוע שקפים של ערן אדן כל הזכויות שמורות לטכניון מכון טכנולוגי לישראל תזכורת: פונקציות להלן קוד של פונקציה בשם :func function

More information

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה! בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. חורף תשס"ח, 2008 מועד הבחינה: מספר השאלון: 402 016103, א. משך הבחינה: שעה ורבע א נ ג ל י

More information

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. קיץ תשע"ד, מועד ב, 2014 מועד הבחינה: מספר השאלון: 414 016115, Thinking Skills נספח: כישורי

More information

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ תור,מחסנית פולינה לוצקר וערימה מבני נתונים ואלגוריתמים מנהלות מרצה הקורס: פרופסור יורם לוזון פולינה מתרגלת: לוצקר אימייל: polinalutbiu@gmail.com, שעות קבלה: 13:00-15:00 יום שני בתיאום מראש. אתר הקורס:

More information

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5 FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO. 652082/2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5 McLaughlin, Terence K. From: Sent: To: Cc: Subject: Follow Up Flag: Flag Status:

More information

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of Name Page 1 of 6 ***Place an X if Closed גמרא (if no indication, we ll assume Open חזרה (גמרא of the :דף times.בל 'נ marked, using the contact info above by Sunday, December 25, 2016 and we ll send it

More information

TAKE ACTION. Unit1. Part A. Pre-Reading Before page 8. A Match each letter to the two letters that follow it in the alphabetical order.

TAKE ACTION. Unit1. Part A. Pre-Reading Before page 8. A Match each letter to the two letters that follow it in the alphabetical order. TAKE ACTION Unit1 Part A Pre-Reading Before page 8 A Match each letter to the two letters that follow it in the alphabetical order. התאימו כל אות לשתי האותיות שעוקבות אחריה בסדר ה- ABC. תוכלו להיעזר באותיות

More information

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך.

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר ארגון המחשב ושפת סף אשר נכתב עי ברק גונן לתוכנית גבהים של משרד החינוך. מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך. הקדמה בסדרת המאמרים הקרובה, אנחנו הולכים ללמוד על השפה אסמבלי, על השימוש בה

More information

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx 1 ברק גונן עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx לעיתים נרצה שהתוכנית תבצע פקודות רק אם מתקיים תנאי מוגדר

More information

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א' תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך מקום להדבקת מדבקת נבחן א נ ג ל י ת סוג בחינה: מועד הבחינה: מספר השאלון: מבחן מטה לבתי ספר תיכוניים חורף תשע"ד 29.01.2014 מותאם לשאלון א' של בחינת הבגרות שסמלו

More information

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G) 3 בגרות סוג הבחינה: מדינת ישראל חורף תשע"ט, 2019 מועד הבחינה: משרד החינוך 016582 מספר השאלון: א. משך הבחינה: שעה וארבעים וחמש דקות אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן מבנה השאלון ומפתח ההערכה:

More information

נתב / TP LINK TL WR541G / TL WR641G

נתב / TP LINK TL WR541G / TL WR641G ROUTER נתב / TP LINK TL WR541G / TL WR641G מדריך התקנה הוראות התקנה לנתב )ROUTER( אלחוטי TP-LINK תוכן העניינים פרק - 1 חיבור הנתב......3 פרק - 2 הגדרת הנתב... 4 2.1 כניסה לממשק הנתב... 4 2.2 הגדרת הנתב

More information

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

שאלות חזרה לקראת מבחן מפמר אינטרנט וסייבר שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר שאלה.1 ייצוג מידע בטבלה שלפניכם מספרים בבסיס. כל מספר מיוצג ע"י 5 סיביות. 10011 = 01100 = 00111 = 11000 = 11010 = 00101 = 10000 = 01111 = ד. יש להשלים את הערך

More information

Summing up. Big Question: What next for me on my Israel Journey?

Summing up. Big Question: What next for me on my Israel Journey? Summing up Goals: To facilitate feedback and debrief of the learning period To clarify and fix the Four Hatikvah Questions as the ongoing framework for approaching Israel To begin to concentrate participants

More information

Yetzer Shalom: Inclinations of Peace

Yetzer Shalom: Inclinations of Peace Yetzer Shalom: Inclinations of Peace by Rabbi Eh'bed Baw'naw (Christopher Fredrickson) 1 Introduction January 9 th of 2013 started my journey in a new facet of my faith. Being a Torah observant believer

More information

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה! בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. תשס"ז, מועד ב מועד הבחינה: מספר השאלון: 402 016103, א. משך הבחינה: שעה ורבע א נ ג ל י ת

More information

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

סהכ נקודות סהכ 31 נקודות סהכ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט מבחן 0220 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5

More information

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

תורשכ ירפס לכ ץבוק  ב י קלח יללכ רעש בס"ד קובץ כל ספרי כשרות י"ב חלק שער כללי הו"ל בחמלת ה' עלי בזכות אבותי ורבותי הקדושים זי"ע הק' שלום יהודה גראס, אבדק"ק האלמין יצ "ו חלק י "ב 4 ספרים ספר א': הפקעת שערים חלק א': קול קורא'ס שיצאו לאור נגד

More information

שילוב אנימציה באתר תזוזת אלמנט לפי טיימר ולוח צירים

שילוב אנימציה באתר תזוזת אלמנט לפי טיימר ולוח צירים 1 שילוב אנימציה באתר תזוזת אלמנט לפי טיימר ולוח צירים - BouncingBall כדור מקפץ בתוך מסגרת - אנימציה פשוטה וחישובי התנגשות בקיר

More information

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך מקום להדבקת מדבקת נבחן סוג בחינה: מועד הבחינה: מספר השאלון: מבחן מטה לבתי ספר תיכוניים חורף תשע"ד 29.01.2014 מותאם לשאלון ב' של בחינת הבגרות שסמלו 016103 א

More information

מנדליי הינה תוכנה חינמית המיועדת לעזור בניהול, שיתוף, קריאה, הוספת הערות וציטוט של מאמרים. בנוסף מתפקדת גם כרשת חברתית של אנשי אקדמיה ומחקר.

מנדליי הינה תוכנה חינמית המיועדת לעזור בניהול, שיתוף, קריאה, הוספת הערות וציטוט של מאמרים. בנוסף מתפקדת גם כרשת חברתית של אנשי אקדמיה ומחקר. מנדליי הינה תוכנה חינמית המיועדת לעזור בניהול, שיתוף, קריאה, הוספת הערות וציטוט של מאמרים. בנוסף מתפקדת גם כרשת חברתית של אנשי אקדמיה ומחקר. רשת זו מטרתה שיתוף, גילוי טרנדים וסטטיסטיקות וחיבור לחוקרים

More information

מערכים Haim Michael. All Rights Reserved.

מערכים Haim Michael. All Rights Reserved. 1 מערכים יצירת מערך הפונקציה var_dump הפונקציה print_r אופן הפעולה של מערך מערך דו מימדי הפקודה list האופרטור,+,==,===!= ו-!== הפונקציה count הפונקציה is_array הפונקציה isset הפונקציה array_key_exists

More information

דוגמה 1: הדרקון המשתנה שינוי גודל דמות

דוגמה 1: הדרקון המשתנה שינוי גודל דמות בפרק זה ניצור משחק מחשב פשוט ובסיסי. דרכו נכיר מנגנון שימושי של Scratch שמאפשר לנו לזכור ולעדכן ערכים, כגון מספר נקודות צבורות לשחקן, ולהציגם לצופים או לשחקנים. דוגמה 1: הדרקון המשתנה שינוי גודל דמות כרגיל,

More information

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית. בגרות לבתי ספר על יסודיים א. סוג הבחינה: מדינת ישראל בגרות לנבחני משנה ב. משרד החינוך בגרות לנבחנים אקסטרניים ג. א. משך הבחינה: שעה ורבע מועד הבחינה: חורף תשס"ז, 2007 מספר השאלון: 406 016107, א נ ג ל י

More information

דיאגרמה לתיאור Classes

דיאגרמה לתיאור Classes 1 דיאגרמה לתיאור Classes הקדמה לדיאגרמת Classes כללים במתן שמות ל- Classes שאנו מתארים הרשאות גישה של מרכיבי ה- Class השונים משתנים (Attributes) שמוגדרים ב- Class משתנים סטטיים Attributes) (Static מתודות

More information

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director NATIONAL COUNCIL OF YOUNG ISRAEL Shavuot Nation JEWISH EDITION Compiled by Gabi Weinberg Teen Program Director Just Dress? Or is Tzniut something more? By Jacob and Penina Bernstein, Youth Directors at

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ג, 2013 מועד הבחינה: משרד החינוך מספר השאלון: 016115 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון ד' (MODULE D) א. משך הבחינה:

More information

מושגים בסיסיים תלמידים והורים יקרים,

מושגים בסיסיים תלמידים והורים יקרים, אחוזים מושגים בסיסיים תלמידים והורים יקרים, לפניכם קובץ ובו מושגים בסיסיים בשאלות אחוזים. הקובץ מכיל 12 מושגים. רצוי לעבור על חומר הלימוד לפני המעבר על המבחנים. ניתן להדפיס קובץ זה כדי שיהיה לפני התלמיד/ה

More information

מנגנון 5522 מידע על המנגנון מצב תצוגת שעה

מנגנון 5522 מידע על המנגנון מצב תצוגת שעה מנגנון 5522 מידע על המנגנון בהתאם לדגם של השעון שלך, טקסט תצוגה יכול להופיע כרקע כהה על רקע בהיר, או תצוגה בהירה על רקע כהה. כל מציג המדגם במדריך זה מוצג באמצעות דמויות כהות על רקע בהיר. פעולות הלחצנים

More information

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר עבודה עם Wireshark מאת עידו קנר - חלק שני הקדמה זהו החלק השני בסדרת מאמרים אשר נועדה לתת דגשים לכלי.Wireshark רבים רואים את Wireshark ככלי המאפשר להאזין )להסניף( את התעבורה ברשת, אך זו אינה בהכרח החוזקה

More information

NTFS ADS Magic Tricks

NTFS ADS Magic Tricks מאת: אפיק קסטיאל )cp77fk4r( הקדמה את המאמר הזה החלטתי לכתוב לאחר פגישה מקרית עם התולעת הישנה,"W2K.Stream" שפגעה במערכות.Windows 2000 בזמנו לא שמעתי עליה, אבל לאחרונה, לאחר שיחה מעניינת עם בחור מעניין יצא

More information

שאלון ד' הוראות לנבחן

שאלון ד' הוראות לנבחן סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה ג. בגרות לנבחנים אקסטרניים מועד הבחינה: תשס"ה, מועד ב מספר השאלון: 404 016105, י ת ל ג נ א שאלון ד' )MODULE D( הוראות לנבחן א. משך הבחינה:

More information

3. class attr_accessor def end 9. end puts "

3. class attr_accessor def end 9. end puts 1. #!/usr/bin/env ruby 2. 3. class Ruby 4. attr_accessor :programming_language 5. 6. def to_s 7. @programming_language 8. 9. 10. 11. rb = Ruby.new 12. rb.programming_language = "ruby" 13. 14. puts rb.to_s

More information

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP מאת Hyp3rInj3cT10n העלאת קבצים ושיתופם הוא עניין שהפך לנפוץ מאוד בימינו: לא פעם ולא פעמיים אנחנו נתקלים במצבים שבהם אנו צריכים ו/או רוצים לשתף קבצים - בין אם מדובר

More information

זה. Nir Adar

זה. Nir Adar גירסה 28.4.2003-1.00 האסמבלי של 8086 חלק שני מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך,

More information

מדריך לניהול VPS טריפל סי מחשוב ענן בע"מ.

מדריך לניהול VPS טריפל סי מחשוב ענן בעמ. מדריך לניהול VPS עמוד מספר 1 ניהול VPS Parallels Virtuozzo מכונות וירטואליות מבוססות טכנולוגיית VPS (Virtual Private Server).Containers למעט מספר מגבלות טכניות, ניתן לבצע במכונות אלו כל אשר ניתן לבצע בשרתים

More information

הצגת המשחק תלמידים משחקים סיום. פתיחה 12 min. min. min. min פתיחה. Copyright 2015

הצגת המשחק תלמידים משחקים סיום. פתיחה 12 min. min. min. min פתיחה. Copyright 2015 1 U n t er r ich t splan חיבור וחיסור זוויות :Altersgruppe כיתה ד, כיתה ה :Online-Ressourcen מכל זווית אפשרית פתיחה הצגת המשחק תלמידים משחקים סיום 1 min 20 min 1 2 min 1 2 min מטרות לימודיות להתנסות במודל

More information

Teaching Halakha and Respecting Student Autonomy Source Sheet Rahel Berkovits

Teaching Halakha and Respecting Student Autonomy Source Sheet Rahel Berkovits Teaching Halakha and Respecting Student Autonomy Source Sheet Rahel Berkovits I. Halakha Puts People Off 1) Rina: I was put in touch with a mentor before I got here if I had any questions, who was a student

More information

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

ãówh,é ËÓÉÔê ÌW W É Å t Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH * .1.2.3 (X).1.2.3.4.5.6 בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל חורף תשע"ג, 2013 מועד הבחינה: משרד החינוך מספר השאלון: 016117 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית שאלון

More information

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה. שם: ת.ז: ציון: Computer Structure Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה. שאלה 1 appleממש מערכת אשר קולטת בכל מחזור שעון ביט קלט בודדX. כדי להגדיר את הפלט של המערכת במחזור השעון הappleוכחי

More information

WALTZ WITH BASHIR Brian J. Arnold Adaptation script for DVD Plus - English & Hebrew February 10, 2009

WALTZ WITH BASHIR Brian J. Arnold Adaptation script for DVD Plus - English & Hebrew February 10, 2009 Adaptor's Notes: 1) This script is a composite of standard adaptation and formatting for the VoiceQ dubbing control system; this document is for reference only. Time codes should be accurate to the quicktime

More information

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link חוג למדעי מחשב מבנה מערכות הפעלה תרגול 7 תרגול מס' 7 נושא התרגיל: מערכת קבצי. בUNIX3 בתרגיל זה נלמד: מבנה מערכת הקבצי. על הדיסק מבנה הInode3 סוגי הקבצי. בUNIX3 ניהול הדיסק 1. מערכת הקבצי! 1.1. הקדמה לכל

More information

(MODULE E) ב ה צ ל ח ה!

(MODULE E) ב ה צ ל ח ה! סוג הבחינה: א. בגרות לבתי ספר על- יסודיים ב. בגרות לנבחני משנה מועד הבחינה: קיץ תשס"ד, 2004 מספר השאלון: 016106 י ת ל ג נ א שאלון ה' (MODULE E) הוראות לנבחן א. משך הבחינה: שעה ורבע בשאלון זה שני פרקים.

More information

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל קיץ תשע"ב, מועד ב מועד הבחינה: משרד החינוך מספר השאלון: 016117 Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א. משך הבחינה: שעה וחצי אנגלית שאלון

More information

Theories of Justice

Theories of Justice Syllabus Theories of Justice - 56981 Last update 06-08-2014 HU Credits: 2 Degree/Cycle: 1st degree (Bachelor) Responsible Department: political Science Academic year: 2 Semester: 2nd Semester Teaching

More information